1642 lines
		
	
	
		
			84 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			1642 lines
		
	
	
		
			84 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env python
 | 
						|
# -*- coding: utf-8 -*-
 | 
						|
from my_error import MyError
 | 
						|
from actions import BaseDDLAction
 | 
						|
from actions import reflect_action_cls_list
 | 
						|
from actions import fetch_observer_version
 | 
						|
from actions import QueryCursor
 | 
						|
import logging
 | 
						|
import time
 | 
						|
import my_utils
 | 
						|
import actions
 | 
						|
import re
 | 
						|
 | 
						|
class UpgradeParams:
 | 
						|
  low_version = '1.4.73'
 | 
						|
  high_version = '2.0.0'
 | 
						|
 | 
						|
'''
 | 
						|
添加一条normal ddl的方法:
 | 
						|
 | 
						|
在本文件中,添加一个类名以"NormalDDLActionPre"开头并且继承自BaseDDLAction的类,
 | 
						|
然后在这个类中实现以下成员函数,并且每个函数执行出错都要抛错:
 | 
						|
(1)@staticmethod get_seq_num():
 | 
						|
返回一个代表着执行顺序的序列号,该序列号在本文件中不允许重复,若有重复则会报错。
 | 
						|
(2)dump_before_do_action(self):
 | 
						|
执行action sql之前把一些相关数据dump到日志中。
 | 
						|
(3)check_before_do_action(self):
 | 
						|
执行action sql之前的检查。
 | 
						|
(4)@staticmethod get_action_ddl():
 | 
						|
返回action sql,并且该sql必须为ddl。
 | 
						|
(5)@staticmethod get_rollback_sql():
 | 
						|
返回回滚该action的sql。
 | 
						|
(6)dump_after_do_action(self):
 | 
						|
执行action sql之后把一些相关数据dump到日志中。
 | 
						|
(7)check_after_do_action(self):
 | 
						|
执行action sql之后的检查。
 | 
						|
(8)skip_action(self):
 | 
						|
check if check_before_do_action() and do_action() can be skipped
 | 
						|
 | 
						|
加表示例:
 | 
						|
class NormalDDLActionPreAddAllBackupBackupLogArchiveStatusHistory(BaseDDLAction):
 | 
						|
  table_name = '__all_backup_backup_log_archive_stat'
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 102
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    return (len(results) > 0)
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError("""table oceanabse.{0} already exists""".format(self.table_name))
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """
 | 
						|
    CREATE TABLE `__all_backup_backup_log_archive_status_history` (
 | 
						|
  `gmt_create` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
 | 
						|
  `gmt_modified` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
 | 
						|
  `tenant_id` bigint(20) NOT NULL,
 | 
						|
  `incarnation` bigint(20) NOT NULL,
 | 
						|
  `log_archive_round` bigint(20) NOT NULL,
 | 
						|
  `copy_id` bigint(20) NOT NULL,
 | 
						|
  `min_first_time` timestamp(6) NOT NULL,
 | 
						|
  `max_next_time` timestamp(6) NOT NULL,
 | 
						|
  `input_bytes` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `output_bytes` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `deleted_input_bytes` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `deleted_output_bytes` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `pg_count` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `backup_dest` varchar(2048) DEFAULT NULL,
 | 
						|
  `is_mark_deleted` tinyint(4) DEFAULT NULL,
 | 
						|
  PRIMARY KEY (`tenant_id`, `incarnation`, `log_archive_round`, `copy_id`)
 | 
						|
) TABLE_ID = 1099511628080 DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'none' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 10 TABLEGROUP = 'oceanbase'
 | 
						|
           """
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError("""table oceanbase.{0} not exists""".format(self.table_name))
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
    if len(results) != 15:
 | 
						|
      raise MyError("""table oceanbase.{0} has invalid column descs""".format(self.table_name))
 | 
						|
 | 
						|
改列示例:
 | 
						|
class NormalDDLActionPreModifyAllRestoreInfoValue(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 12
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_restore_info""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_restore_info where field = 'value' and type = 'longtext'""")
 | 
						|
    return len(results) > 0
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_restore_info like 'value'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('table oceanbase.__all_rootservice_event_history column value not exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_restore_info modify column `value` longtext NOT NULL"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_restore_info""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_restore_info where field = 'value' and type = 'longtext'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column value for oceanbase.__all_restore_info')
 | 
						|
 | 
						|
加列示例:
 | 
						|
class NormalDDLActionPreAllTenantProfileAddVerifyFunction(BaseDDLAction):
 | 
						|
 @staticmethod
 | 
						|
 def get_seq_num():
 | 
						|
   return 0
 | 
						|
 def dump_before_do_action(self):
 | 
						|
   my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_tenant_profile""")
 | 
						|
 def skip_action(self):
 | 
						|
   (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_tenant_profile like 'password_verify_function'""")
 | 
						|
   return len(results) > 0;
 | 
						|
 def check_before_do_action(self):
 | 
						|
   (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_tenant_profile like 'password_verify_function'""")
 | 
						|
   if len(results) != 0:
 | 
						|
     raise MyError('password_verify_function column alread exists')
 | 
						|
 @staticmethod
 | 
						|
 def get_action_ddl():
 | 
						|
   return """alter table oceanbase.__all_tenant_profile add column `password_verify_function` varchar(30) DEFAULT NULL id 23"""
 | 
						|
 @staticmethod
 | 
						|
 def get_rollback_sql():
 | 
						|
   return """alter table oceanbase.__all_tenant_profile drop column password_verify_function"""
 | 
						|
 def dump_after_do_action(self):
 | 
						|
   my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_tenant_profile""")
 | 
						|
 def check_after_do_action(self):
 | 
						|
   (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_tenant_profile like 'password_verify_function'""")
 | 
						|
   if len(results) != 1:
 | 
						|
     raise MyError('failed to add column password_verify_function for oceanbase.__all_tenant_profile')
 | 
						|
 | 
						|
'''
 | 
						|
 | 
						|
#升级语句对应的action要写在下面的actions begin和actions end这两行之间,
 | 
						|
#因为基准版本更新的时候会调用reset_upgrade_scripts.py来清空actions begin和actions end
 | 
						|
#这两行之间的这些action,如果不写在这两行之间的话会导致清空不掉相应的action。
 | 
						|
 | 
						|
####========******####======== actions begin ========####******========####
 | 
						|
class NormalDDLActionPreCreateAllRegionNetworkBandwidthLimit(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 1
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '__all_region_network_bandwidth_limit'""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '__all_region_network_bandwidth_limit'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '__all_region_network_bandwidth_limit'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('table oceanbase.__all_region_network_bandwidth_limit already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return  """CREATE TABLE `__all_region_network_bandwidth_limit` (
 | 
						|
                `gmt_create` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
 | 
						|
                `gmt_modified` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
 | 
						|
                `src_region` varchar(128) NOT NULL,
 | 
						|
                `dst_region` varchar(128) NOT NULL,
 | 
						|
                `max_bw` bigint(20) NOT NULL,
 | 
						|
                PRIMARY KEY (`src_region`, `dst_region`)
 | 
						|
               ) TABLE_ID = 1099511628096 DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'none' BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 10 TABLEGROUP = 'oceanbase'
 | 
						|
           """
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '__all_region_network_bandwidth_limit'""")
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show columns from oceanbase.__all_region_network_bandwidth_limit""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '__all_region_network_bandwidth_limit'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('table oceanbase.__all_region_network_bandwidth_limit not exists')
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_region_network_bandwidth_limit""")
 | 
						|
    if len(results) != 5:
 | 
						|
      raise MyError('table oceanbase.__all_region_network_bandwidth_limit has invalid column descs')
 | 
						|
    elif results[0][0] != 'gmt_create' or results[0][1] != 'timestamp(6)' or results[0][2] != 'YES':
 | 
						|
      raise MyError('table oceanbase.__all_region_network_bandwidth_limit has invalid column gmt_create')
 | 
						|
    elif results[1][0] != 'gmt_modified' or results[1][1] != 'timestamp(6)' or results[1][2] != 'YES':
 | 
						|
      raise MyError('table oceanbase.__all_region_network_bandwidth_limit has invalid column gmt_modified')
 | 
						|
    elif results[2][0] != 'src_region' or results[2][1] != 'varchar(128)' or results[2][2] != 'NO' or results[2][3] != 'PRI':
 | 
						|
      raise MyError('table oceanbase.__all_region_network_bandwidth_limit has invalid column src_region')
 | 
						|
    elif results[3][0] != 'dst_region' or results[3][1] != 'varchar(128)' or results[3][2] != 'NO' or results[3][3] != 'PRI':
 | 
						|
      raise MyError('table oceanbase.__all_region_network_bandwidth_limit has invalid column dst_region')
 | 
						|
    elif results[4][0] != 'max_bw' or results[4][1] != 'bigint(20)' or results[4][2] != 'NO':
 | 
						|
      raise MyError('table oceanbase.__all_region_network_bandwidth_limit has invalid column max_bw')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnAllRoutine(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 2
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_routine""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_routine like 'type_id'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_routine like 'type_id'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_routine.type_id already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_routine add column `type_id` bigint(20) DEFAULT '-1' id 35"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_routine""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_routine like 'type_id'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column type_id for oceanbase.__all_routine')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnAllRoutineHistory(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 3
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_routine_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_routine_history like 'type_id'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_routine_history like 'type_id'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_routine_history.type_id already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_routine_history add column `type_id` bigint(20) DEFAULT '-1' id 36"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_routine_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_routine_history like 'type_id'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column type_id for oceanbase.__all_routine_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnAssociationTableIdAllTable(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 4
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'association_table_id'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'association_table_id'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('association_table_id column alread exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_table add column `association_table_id` bigint(20) NOT NULL DEFAULT '-1' id 90"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_table drop column association_table_id"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'association_table_id'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column association_table_id for oceanbase.__all_table')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnAssociationTableIdAllTableHistory(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 5
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'association_table_id'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'association_table_id'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('association_table_id column alread exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
   return """alter table oceanbase.__all_table_history add column `association_table_id` bigint(20) DEFAULT '-1' id 91"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_table_history drop column association_table_id"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'association_table_id'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column association_table_id for oceanbase.__all_table_history')
 | 
						|
 | 
						|
 | 
						|
class NormalDDLActionPreAllPartAddPartitionType(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 6
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_part""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_part like 'partition_type'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_part like 'partition_type'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_part.partition_type already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_part add column `partition_type` bigint(20) NOT NULL DEFAULT '0' id 49"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_part""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_part like 'partition_type'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column partition_type for oceanbase.__all_part')
 | 
						|
 | 
						|
class NormalDDLActionPreAllPartHistoryAddPartitionType(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 7
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_part_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_part_history like 'partition_type'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_part_history like 'partition_type'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_part_history.partition_type already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_part_history add column `partition_type` bigint(20) DEFAULT '0' id 50"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_part_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_part_history like 'partition_type'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column partition_type for oceanbase.__all_part_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAllSubPartAddPartitionType(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 8
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_sub_part""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_sub_part like 'partition_type'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_sub_part like 'partition_type'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_sub_part.partition_type already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_sub_part add column `partition_type` bigint(20) NOT NULL DEFAULT '0' id 41"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_sub_part""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_sub_part like 'partition_type'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column partition_type for oceanbase.__all_sub_part')
 | 
						|
 | 
						|
class NormalDDLActionPreAllSubPartHistoryAddPartitionType(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 9
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_sub_part_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_sub_part_history like 'partition_type'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_sub_part_history like 'partition_type'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_sub_part_history.partition_type already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_sub_part_history add column `partition_type` bigint(20) DEFAULT '0' id 42"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_sub_part_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_sub_part_history like 'partition_type'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column partition_type for oceanbase.__all_sub_part_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAddBMemberListArg(BaseDDLAction):
 | 
						|
 @staticmethod
 | 
						|
 def get_seq_num():
 | 
						|
   return 11
 | 
						|
 def dump_before_do_action(self):
 | 
						|
   my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_partition_member_list""")
 | 
						|
 def skip_action(self):
 | 
						|
   (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_partition_member_list like 'b_member_list_arg'""")
 | 
						|
   return (len(results) > 0)
 | 
						|
 def check_before_do_action(self):
 | 
						|
   (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_partition_member_list like 'b_member_list_arg'""")
 | 
						|
   if len(results) != 0:
 | 
						|
     raise MyError('b_member_list_arg column alread exists')
 | 
						|
 @staticmethod
 | 
						|
 def get_action_ddl():
 | 
						|
   return """alter table oceanbase.__all_partition_member_list add column `b_member_list_arg` longtext id 24"""
 | 
						|
 @staticmethod
 | 
						|
 def get_rollback_sql():
 | 
						|
   return """"""
 | 
						|
 def dump_after_do_action(self):
 | 
						|
   my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_partition_member_list""")
 | 
						|
 def check_after_do_action(self):
 | 
						|
   (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_partition_member_list like 'b_member_list_arg'""")
 | 
						|
   if len(results) != 1:
 | 
						|
     raise MyError('failed to add column b_member_list_arg for oceanbase.__all_partition_member_list')
 | 
						|
 | 
						|
class NormalDDLActionPreModifyAllPartitionMemberList(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 12
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_partition_member_list""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_partition_member_list where field = 'member_list' and type = 'longtext'""")
 | 
						|
    return len(results) > 0
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_partition_member_list like 'member_list'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('table oceanbase.__all_rootservice_event_history column member_list not exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_partition_member_list modify column `member_list` longtext"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_partition_member_list""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_partition_member_list where field = 'member_list' and type = 'longtext'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column member_list for oceanbase.__all_partition_member_list')
 | 
						|
 | 
						|
class NormalDDLActionPreAddAllBackupBackupPieceJob(BaseDDLAction):
 | 
						|
  table_name = '__all_backup_backuppiece_job'
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 13
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    return (len(results) > 0)
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError("""table oceanabse.{0} already exists""".format(self.table_name))
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """ CREATE TABLE `__all_backup_backuppiece_job` (
 | 
						|
  `gmt_create` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
 | 
						|
  `gmt_modified` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
 | 
						|
  `job_id` bigint(20) NOT NULL,
 | 
						|
  `tenant_id` bigint(20) NOT NULL,
 | 
						|
  `incarnation` bigint(20) NOT NULL,
 | 
						|
  `backup_piece_id` bigint(20) NOT NULL,
 | 
						|
  `max_backup_times` bigint(20) NOT NULL,
 | 
						|
  `result` bigint(20) NOT NULL,
 | 
						|
  `status` varchar(64) NOT NULL,
 | 
						|
  `backup_dest` varchar(2048) DEFAULT NULL,
 | 
						|
  `comment` varchar(4096) NOT NULL,
 | 
						|
  `type` bigint(20) NOT NULL,
 | 
						|
  PRIMARY KEY (`job_id`, `tenant_id`, `incarnation`, `backup_piece_id`)
 | 
						|
) TABLE_ID = 1099511628086 DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'none' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 10 TABLEGROUP = 'oceanbase'
 | 
						|
           """
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError("""table oceanbase.{0} not exists""".format(self.table_name))
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
    if len(results) != 12:
 | 
						|
      raise MyError("""table oceanbase.{0} has invalid column descs""".format(self.table_name))
 | 
						|
 | 
						|
class NormalDDLActionPreAddAllBackupBackupPieceJobHistory(BaseDDLAction):
 | 
						|
  table_name = '__all_backup_backuppiece_job_history'
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 14
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    return (len(results) > 0)
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError("""table oceanabse.{0} already exists""".format(self.table_name))
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """  CREATE TABLE `__all_backup_backuppiece_job_history` (
 | 
						|
  `gmt_create` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
 | 
						|
  `gmt_modified` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
 | 
						|
  `job_id` bigint(20) NOT NULL,
 | 
						|
  `tenant_id` bigint(20) NOT NULL,
 | 
						|
  `incarnation` bigint(20) NOT NULL,
 | 
						|
  `backup_piece_id` bigint(20) NOT NULL,
 | 
						|
  `max_backup_times` bigint(20) NOT NULL,
 | 
						|
  `result` bigint(20) NOT NULL,
 | 
						|
  `status` varchar(64) NOT NULL,
 | 
						|
  `backup_dest` varchar(2048) DEFAULT NULL,
 | 
						|
  `comment` varchar(4096) NOT NULL,
 | 
						|
  `type` bigint(20) NOT NULL,
 | 
						|
  PRIMARY KEY (`job_id`, `tenant_id`, `incarnation`, `backup_piece_id`)
 | 
						|
) TABLE_ID = 1099511628087 DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'none' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 10 TABLEGROUP = 'oceanbase'
 | 
						|
 """
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError("""table oceanbase.{0} not exists""".format(self.table_name))
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
    if len(results) != 12:
 | 
						|
      raise MyError("""table oceanbase.{0} has invalid column descs""".format(self.table_name))
 | 
						|
 | 
						|
class NormalDDLActionPreAddAllBackupBackupPieceTask(BaseDDLAction):
 | 
						|
  table_name = '__all_backup_backuppiece_task'
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 15
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    return (len(results) > 0)
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError("""table oceanabse.{0} already exists""".format(self.table_name))
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """
 | 
						|
      CREATE TABLE `__all_backup_backuppiece_task` (
 | 
						|
  `gmt_create` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
 | 
						|
  `gmt_modified` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
 | 
						|
  `job_id` bigint(20) NOT NULL,
 | 
						|
  `incarnation` bigint(20) NOT NULL,
 | 
						|
  `tenant_id` bigint(20) NOT NULL,
 | 
						|
  `round_id` bigint(20) NOT NULL,
 | 
						|
  `backup_piece_id` bigint(20) NOT NULL,
 | 
						|
  `copy_id` bigint(20) NOT NULL,
 | 
						|
  `start_time` timestamp(6) NOT NULL,
 | 
						|
  `end_time` timestamp(6) NOT NULL,
 | 
						|
  `status` varchar(64) NOT NULL,
 | 
						|
  `backup_dest` varchar(2048) DEFAULT NULL,
 | 
						|
  `result` bigint(20) NOT NULL,
 | 
						|
  `comment` varchar(4096) NOT NULL,
 | 
						|
  PRIMARY KEY (`job_id`, `incarnation`, `tenant_id`, `round_id`, `backup_piece_id`, `copy_id`)
 | 
						|
) TABLE_ID = 1099511628088 DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'none' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 10 TABLEGROUP = 'oceanbase'
 | 
						|
 """
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError("""table oceanbase.{0} not exists""".format(self.table_name))
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
    if len(results) != 14:
 | 
						|
      raise MyError("""table oceanbase.{0} has invalid column descs""".format(self.table_name))
 | 
						|
class NormalDDLActionPreAddAllBackupBackupPieceTaskHistory(BaseDDLAction):
 | 
						|
  table_name = '__all_backup_backuppiece_task_history'
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 16
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    return (len(results) > 0)
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError("""table oceanabse.{0} already exists""".format(self.table_name))
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """
 | 
						|
    CREATE TABLE `__all_backup_backuppiece_task_history` (
 | 
						|
  `gmt_create` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
 | 
						|
  `gmt_modified` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
 | 
						|
  `job_id` bigint(20) NOT NULL,
 | 
						|
  `incarnation` bigint(20) NOT NULL,
 | 
						|
  `tenant_id` bigint(20) NOT NULL,
 | 
						|
  `round_id` bigint(20) NOT NULL,
 | 
						|
  `backup_piece_id` bigint(20) NOT NULL,
 | 
						|
  `copy_id` bigint(20) NOT NULL,
 | 
						|
  `start_time` timestamp(6) NOT NULL,
 | 
						|
  `end_time` timestamp(6) NOT NULL,
 | 
						|
  `status` varchar(64) NOT NULL,
 | 
						|
  `backup_dest` varchar(2048) DEFAULT NULL,
 | 
						|
  `result` bigint(20) NOT NULL,
 | 
						|
  `comment` varchar(4096) NOT NULL,
 | 
						|
  PRIMARY KEY (`job_id`, `incarnation`, `tenant_id`, `round_id`, `backup_piece_id`, `copy_id`)
 | 
						|
) TABLE_ID = 1099511628089 DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'none' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 10 TABLEGROUP = 'oceanbase'
 | 
						|
 """
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError("""table oceanbase.{0} not exists""".format(self.table_name))
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
    if len(results) != 14:
 | 
						|
      raise MyError("""table oceanbase.{0} has invalid column descs""".format(self.table_name))
 | 
						|
class NormalDDLActionPreAddAllBackupSetFiles(BaseDDLAction):
 | 
						|
  table_name = '__all_backup_set_files'
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 17
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    return (len(results) > 0)
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError("""table oceanabse.{0} already exists""".format(self.table_name))
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """
 | 
						|
     CREATE TABLE `__all_backup_set_files` (
 | 
						|
  `gmt_create` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
 | 
						|
  `gmt_modified` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
 | 
						|
  `incarnation` bigint(20) NOT NULL,
 | 
						|
  `tenant_id` bigint(20) NOT NULL,
 | 
						|
  `backup_set_id` bigint(20) NOT NULL,
 | 
						|
  `copy_id` bigint(20) NOT NULL,
 | 
						|
  `backup_type` varchar(1) NOT NULL,
 | 
						|
  `snapshot_version` bigint(20) NOT NULL,
 | 
						|
  `prev_full_backup_set_id` bigint(20) NOT NULL,
 | 
						|
  `prev_inc_backup_set_id` bigint(20) NOT NULL,
 | 
						|
  `prev_backup_data_version` bigint(20) NOT NULL,
 | 
						|
  `pg_count` bigint(20) NOT NULL,
 | 
						|
  `macro_block_count` bigint(20) NOT NULL,
 | 
						|
  `finish_pg_count` bigint(20) NOT NULL,
 | 
						|
  `finish_macro_block_count` bigint(20) NOT NULL,
 | 
						|
  `input_bytes` bigint(20) NOT NULL,
 | 
						|
  `output_bytes` bigint(20) NOT NULL,
 | 
						|
  `start_time` bigint(20) NOT NULL,
 | 
						|
  `end_time` bigint(20) NOT NULL,
 | 
						|
  `compatible` bigint(20) NOT NULL,
 | 
						|
  `cluster_version` bigint(20) NOT NULL,
 | 
						|
  `status` varchar(64) NOT NULL,
 | 
						|
  `result` bigint(20) NOT NULL,
 | 
						|
  `cluster_id` bigint(20) NOT NULL,
 | 
						|
  `backup_data_version` bigint(20) NOT NULL,
 | 
						|
  `backup_schema_version` bigint(20) NOT NULL,
 | 
						|
  `cluster_version_display` varchar(64) NOT NULL,
 | 
						|
  `partition_count` bigint(20) NOT NULL,
 | 
						|
  `finish_partition_count` bigint(20) NOT NULL,
 | 
						|
  `encryption_mode` varchar(64) NOT NULL DEFAULT 'None',
 | 
						|
  `passwd` varchar(128) NOT NULL DEFAULT '',
 | 
						|
  `file_status` varchar(64) NOT NULL,
 | 
						|
  `backup_dest` varchar(2048) NOT NULL,
 | 
						|
  `start_replay_log_ts` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `date` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `backup_level` varchar(64) NOT NULL DEFAULT 'CLUSTER',
 | 
						|
  PRIMARY KEY (`incarnation`, `tenant_id`, `backup_set_id`, `copy_id`)
 | 
						|
) TABLE_ID = 1099511628091 DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'none' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 10 TABLEGROUP = 'oceanbase'
 | 
						|
 """
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError("""table oceanbase.{0} not exists""".format(self.table_name))
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
    if len(results) != 36:
 | 
						|
      raise MyError("""table oceanbase.{0} has invalid column descs""".format(self.table_name))
 | 
						|
class NormalDDLActionPreAddAllBackupInfo(BaseDDLAction):
 | 
						|
  table_name = '__all_backup_info'
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 18
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    return (len(results) > 0)
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError("""table oceanabse.{0} already exists""".format(self.table_name))
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """
 | 
						|
     CREATE TABLE `__all_backup_info` (
 | 
						|
  `gmt_create` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
 | 
						|
  `gmt_modified` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
 | 
						|
  `name` varchar(1024) NOT NULL,
 | 
						|
  `value` longtext NOT NULL,
 | 
						|
  PRIMARY KEY (`name`)
 | 
						|
) TABLE_ID = 1099511628093 DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'none' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 10 TABLEGROUP = 'oceanbase'
 | 
						|
 """
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError("""table oceanbase.{0} not exists""".format(self.table_name))
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
    if len(results) != 4:
 | 
						|
      raise MyError("""table oceanbase.{0} has invalid column descs""".format(self.table_name))
 | 
						|
class NormalDDLActionPreAddAllBackupLogArchiveStatusV2(BaseDDLAction):
 | 
						|
  table_name = '__all_backup_log_archive_status_v2'
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 19
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    return (len(results) > 0)
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError("""table oceanabse.{0} already exists""".format(self.table_name))
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """
 | 
						|
     CREATE TABLE `__all_backup_log_archive_status_v2` (
 | 
						|
  `gmt_create` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
 | 
						|
  `gmt_modified` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
 | 
						|
  `tenant_id` bigint(20) NOT NULL,
 | 
						|
  `incarnation` bigint(20) NOT NULL,
 | 
						|
  `log_archive_round` bigint(20) NOT NULL,
 | 
						|
  `min_first_time` timestamp(6) NOT NULL,
 | 
						|
  `max_next_time` timestamp(6) NOT NULL,
 | 
						|
  `input_bytes` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `output_bytes` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `deleted_input_bytes` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `deleted_output_bytes` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `pg_count` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `status` varchar(64) NOT NULL,
 | 
						|
  `is_mount_file_created` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `compatible` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `start_piece_id` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `backup_piece_id` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `backup_dest` varchar(2048) NOT NULL DEFAULT '',
 | 
						|
  PRIMARY KEY (`tenant_id`)
 | 
						|
) TABLE_ID = 1099511628094 DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'none' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 10 TABLEGROUP = 'oceanbase'
 | 
						|
 """
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError("""table oceanbase.{0} not exists""".format(self.table_name))
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
    if len(results) != 18:
 | 
						|
      raise MyError("""table oceanbase.{0} has invalid column descs""".format(self.table_name))
 | 
						|
class NormalDDLActionPreAddAllBackupBackupLogArchiveStatusV2(BaseDDLAction):
 | 
						|
  table_name = '__all_backup_backup_log_archive_status_v2'
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 20
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    return (len(results) > 0)
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError("""table oceanabse.{0} already exists""".format(self.table_name))
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """
 | 
						|
     CREATE TABLE `__all_backup_backup_log_archive_status_v2` (
 | 
						|
  `gmt_create` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
 | 
						|
  `gmt_modified` timestamp(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
 | 
						|
  `tenant_id` bigint(20) NOT NULL,
 | 
						|
  `copy_id` bigint(20) NOT NULL,
 | 
						|
  `incarnation` bigint(20) NOT NULL,
 | 
						|
  `log_archive_round` bigint(20) NOT NULL,
 | 
						|
  `min_first_time` timestamp(6) NOT NULL,
 | 
						|
  `max_next_time` timestamp(6) NOT NULL,
 | 
						|
  `input_bytes` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `output_bytes` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `deleted_input_bytes` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `deleted_output_bytes` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `pg_count` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `status` varchar(64) NOT NULL,
 | 
						|
  `is_mount_file_created` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `compatible` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `start_piece_id` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `backup_piece_id` bigint(20) NOT NULL DEFAULT '0',
 | 
						|
  `backup_dest` varchar(2048) NOT NULL DEFAULT '',
 | 
						|
  PRIMARY KEY (`tenant_id`)
 | 
						|
) TABLE_ID =  1099511628097 DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'none' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 10 TABLEGROUP = 'oceanbase'
 | 
						|
 """
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show tables from oceanbase like '{0}'""".format(self.table_name))
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError("""table oceanbase.{0} not exists""".format(self.table_name))
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.{0}""".format(self.table_name))
 | 
						|
    if len(results) != 19:
 | 
						|
      raise MyError("""table oceanbase.{0} has invalid column descs""".format(self.table_name))
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnAllUserMaxConnections(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 21
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_user""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_user like 'max_connections'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_user like 'max_connections'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_user.max_connections already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_user add column `max_connections` bigint(20) NOT NULL DEFAULT '0' id 53"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_user""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_user like 'max_connections'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column max_connections for oceanbase.__all_user')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnAllUserMaxUserConnections(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 22
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_user""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_user like 'max_user_connections'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_user like 'max_user_connections'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_user.max_user_connections already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_user add column `max_user_connections` bigint(20) NOT NULL DEFAULT '0' id 54"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_user""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_user like 'max_user_connections'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column max_user_connections for oceanbase.__all_user')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnAllUserHistoryMaxConnections(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 23
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_user_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_user_history like 'max_connections'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_user_history like 'max_connections'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_user_history.max_connections already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_user_history add column `max_connections` bigint(20) DEFAULT '0' id 55"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_user_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_user_history like 'max_connections'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column max_connections for oceanbase.__all_user_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnAllUserHistoryMaxUserConnections(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 24
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_user_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_user_history like 'max_user_connections'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_user_history like 'max_user_connections'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_user_history.max_user_connections already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_user_history add column `max_user_connections` bigint(20) DEFAULT '0' id 56"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_user_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_user_history like 'max_user_connections'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column max_user_connections for oceanbase.__all_user_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkAddDriveProto(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 25
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'driver_proto'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'driver_proto'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink column driver_proto exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink add column `driver_proto` bigint(20) NOT NULL DEFAULT '0' id 28"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink drop column driver_proto"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'driver_proto'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column driver_proto for oceanbase.__all_dblink')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkAddFlag(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 26
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'flag'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'flag'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink column flag exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink add column `flag` bigint(20) NOT NULL DEFAULT '0' id 29"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink drop column flag"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'flag'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column flag for oceanbase.__all_dblink')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkAddConnString(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 27
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'conn_string'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'conn_string'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink column conn_string exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink add column `conn_string` varchar(4096) DEFAULT '' id 30"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink drop column conn_string"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'conn_string'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column conn_string for oceanbase.__all_dblink')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkAddServiceName(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 28
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'service_name'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'service_name'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink column service_name exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink add column `service_name` varchar(128) DEFAULT '' id 31"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink drop column service_name"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'service_name'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column service_name for oceanbase.__all_dblink')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkAddAuthusr(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 29
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'authusr'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'authusr'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink column authusr exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink add column `authusr` varchar(128) DEFAULT '' id 32"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink drop column authusr"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'authusr'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column authusr for oceanbase.__all_dblink')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkAddAuthpwd(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 30
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'authpwd'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'authpwd'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink column authpwd exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink add column `authpwd` varchar(128) DEFAULT '' id 33"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink drop column authpwd"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'authpwd'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column authpwd for oceanbase.__all_dblink')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkAddPasswordx(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 31
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'passwordx'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'passwordx'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink column passwordx exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink add column `passwordx` varbinary(128) DEFAULT '' id 34"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink drop column passwordx"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'passwordx'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column passwordx for oceanbase.__all_dblink')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkAddAuthpwdx(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 32
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'authpwdx'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'authpwdx'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink column authpwdx exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink add column `authpwdx` varbinary(128) DEFAULT '' id 35"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink drop column authpwdx"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink like 'authpwdx'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column authpwdx for oceanbase.__all_dblink')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkHistoryAddDriveProto(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 33
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'driver_proto'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'driver_proto'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink_history column driver_proto exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink_history add column `driver_proto` bigint(20) DEFAULT '0' id 30"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink_history drop column driver_proto"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'driver_proto'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column driver_proto for oceanbase.__all_dblink_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkHistoryAddFlag(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 34
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'flag'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'flag'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink_history column flag exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink_history add column `flag` bigint(20) DEFAULT '0' id 31"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink_history drop column flag"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'flag'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column flag for oceanbase.__all_dblink_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkHistoryAddConnString(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 35
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'conn_string'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'conn_string'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink_history column conn_string exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink_history add column `conn_string` varchar(4096) DEFAULT '' id 32"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink_history drop column conn_string"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'conn_string'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column conn_string for oceanbase.__all_dblink_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkHistoryAddServiceName(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 36
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'service_name'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'service_name'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink_history column service_name exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink_history add column `service_name` varchar(128) DEFAULT '' id 33"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink_history drop column service_name"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'service_name'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column service_name for oceanbase.__all_dblink_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkHistoryAddAuthusr(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 37
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'authusr'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'authusr'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink_history column authusr exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink_history add column `authusr` varchar(128) DEFAULT '' id 34"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink_history drop column authusr"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'authusr'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column authusr for oceanbase.__all_dblink_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkHistoryAddAuthpwd(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 38
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'authpwd'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'authpwd'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink_history column authpwd exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink_history add column `authpwd` varchar(128) DEFAULT '' id 35"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink_history drop column authpwd"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'authpwd'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column authpwd for oceanbase.__all_dblink_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkHistoryAddPasswordx(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 39
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'passwordx'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'passwordx'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink_history column passwordx exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink_history add column `passwordx` varbinary(128) DEFAULT '' id 36"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink_history drop column passwordx"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'passwordx'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column passwordx for oceanbase.__all_dblink_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAllDblinkHistoryAddAuthpwdx(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 40
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'authpwdx'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'authpwdx'""")
 | 
						|
    if len(results) != 0:
 | 
						|
      raise MyError('table oceanbase.__all_dblink_history column authpwdx exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_dblink_history add column `authpwdx` varbinary(128) DEFAULT '' id 37"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """alter table oceanbase.__all_dblink_history drop column authpwdx"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_dblink_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_dblink_history like 'authpwdx'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('fail to modify column authpwdx for oceanbase.__all_dblink_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnTransitionPointAllTable(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 41
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'transition_point'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'transition_point'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_table.transition_point already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_table add column `transition_point` varchar(4096) DEFAULT NULL id 91"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'transition_point'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column transition_point for oceanbase.__all_table')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnTransitionPointAllTableHistroy(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 42
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'transition_point'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'transition_point'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_table_history.transition_point already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_table_history add column `transition_point` varchar(4096) DEFAULT NULL id 92"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'transition_point'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column transition_point for oceanbase.__all_table_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnBTransitionPointAllTable(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 43
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'b_transition_point'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'b_transition_point'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_table.b_transition_point already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_table add column `b_transition_point` varchar(8192) DEFAULT NULL id 92"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'b_transition_point'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column b_transition_point for oceanbase.__all_table')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnBTransitionPointAllTableHistroy(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 44
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'b_transition_point'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'b_transition_point'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_table_history.b_transition_point already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_table_history add column `b_transition_point` varchar(8192) DEFAULT NULL NULL id 93"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'b_transition_point'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column b_transition_point for oceanbase.__all_table_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnIntervalRangeAllTable(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 45
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'interval_range'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'interval_range'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_table.interval_range already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_table add column `interval_range` varchar(4096) DEFAULT NULL id 93"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'interval_range'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column interval_range for oceanbase.__all_table')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnIntervalRangeAllTableHistroy(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 46
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'interval_range'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'interval_range'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_table_history.interval_range already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_table_history add column `interval_range` varchar(4096) DEFAULT NULL id 94"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'interval_range'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column interval_range for oceanbase.__all_table_history')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnBIntervalRangeAllTable(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 47
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'b_interval_range'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'b_interval_range'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_table.b_interval_range already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_table add column `b_interval_range` varchar(8192) DEFAULT NULL id 94"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table like 'b_interval_range'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column b_interval_range for oceanbase.__all_table')
 | 
						|
 | 
						|
class NormalDDLActionPreAddColumnBIntervalRangeAllTableHistroy(BaseDDLAction):
 | 
						|
  @staticmethod
 | 
						|
  def get_seq_num():
 | 
						|
    return 48
 | 
						|
  def dump_before_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table_history""")
 | 
						|
  def skip_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'b_interval_range'""")
 | 
						|
    return len(results) > 0;
 | 
						|
  def check_before_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'b_interval_range'""")
 | 
						|
    if len(results) > 0:
 | 
						|
      raise MyError('column oceanbase.__all_table_history.b_interval_range already exists')
 | 
						|
  @staticmethod
 | 
						|
  def get_action_ddl():
 | 
						|
    return """alter table oceanbase.__all_table_history add column `b_interval_range` varchar(8192) DEFAULT NULL id 95"""
 | 
						|
  @staticmethod
 | 
						|
  def get_rollback_sql():
 | 
						|
    return """"""
 | 
						|
  def dump_after_do_action(self):
 | 
						|
    my_utils.query_and_dump_results(self._query_cursor, """desc oceanbase.__all_table_history""")
 | 
						|
  def check_after_do_action(self):
 | 
						|
    (desc, results) = self._query_cursor.exec_query("""show columns from oceanbase.__all_table_history like 'b_interval_range'""")
 | 
						|
    if len(results) != 1:
 | 
						|
      raise MyError('failed to add column b_interval_range for oceanbase.__all_table_history')
 | 
						|
 | 
						|
####========******####========= actions end =========####******========####
 | 
						|
def do_normal_ddl_actions(cur):
 | 
						|
  import normal_ddl_actions_pre
 | 
						|
  upgrade_params = UpgradeParams()
 | 
						|
  cls_list = reflect_action_cls_list(normal_ddl_actions_pre, 'NormalDDLActionPre')
 | 
						|
 | 
						|
  # check if pre upgrade script can run reentrantly
 | 
						|
  query_cur = QueryCursor(cur)
 | 
						|
  version = fetch_observer_version(query_cur)
 | 
						|
  can_skip = False
 | 
						|
  if (cmp(version, "2.2.77") >= 0 and cmp(version, "3.0.0") < 0):
 | 
						|
    can_skip = True
 | 
						|
  elif (cmp(version, "3.1.1") >= 0):
 | 
						|
    can_skip = True
 | 
						|
  else:
 | 
						|
    can_skip = False
 | 
						|
 | 
						|
  # set parameter
 | 
						|
  if len(cls_list) > 0:
 | 
						|
    actions.set_parameter(cur, 'enable_sys_table_ddl' , 'True')
 | 
						|
    ori_enable_ddl = actions.get_ori_enable_ddl(cur)
 | 
						|
    if ori_enable_ddl == 0:
 | 
						|
      actions.set_parameter(cur, 'enable_ddl', 'True')
 | 
						|
 | 
						|
  for cls in cls_list:
 | 
						|
    logging.info('do normal ddl acion, seq_num: %d', cls.get_seq_num())
 | 
						|
    action = cls(cur)
 | 
						|
    action.dump_before_do_action()
 | 
						|
    if False == can_skip or False == action.skip_action():
 | 
						|
      action.check_before_do_action()
 | 
						|
      action.do_action()
 | 
						|
    else:
 | 
						|
      logging.info("skip ddl action, seq_num: %d", cls.get_seq_num())
 | 
						|
    action.dump_after_do_action()
 | 
						|
    action.check_after_do_action()
 | 
						|
 | 
						|
  # reset parameter
 | 
						|
  if len(cls_list) > 0:
 | 
						|
    if ori_enable_ddl == 0:
 | 
						|
      actions.set_parameter(cur, 'enable_ddl' , 'False')
 | 
						|
    actions.set_parameter(cur, 'enable_sys_table_ddl' , 'False')
 | 
						|
 | 
						|
def get_normal_ddl_actions_sqls_str(query_cur):
 | 
						|
  import normal_ddl_actions_pre
 | 
						|
  ret_str = ''
 | 
						|
  cls_list = reflect_action_cls_list(normal_ddl_actions_pre, 'NormalDDLActionPre')
 | 
						|
  for i in range(0, len(cls_list)):
 | 
						|
    if i > 0:
 | 
						|
      ret_str += '\n'
 | 
						|
    ret_str += cls_list[i].get_action_ddl() + ';'
 | 
						|
  return ret_str
 |