提交 8a787f0a 编写于 作者: O obdev 提交者: ob-robot

fix truncate tmp table

上级 eac32d47
......@@ -16504,7 +16504,7 @@ int ObDDLService::check_table_schema_is_legal(const ObDatabaseSchema & database_
}
} else if (0 != table_schema.get_autoinc_column_id()) {
ret = OB_ERR_PARALLEL_DDL_CONFLICT;
LOG_WARN("table with autoinc column should not get in new_truncate_table", KR(ret));
LOG_WARN("table with autoinc column should not get in new_truncate_table", KR(ret), K(table_id), K(table_name), K(database_name));
} else if (table_schema.is_sys_table()) {
ret = OB_NOT_SUPPORTED;
LOG_WARN("truncate table is not supported on system table", KR(ret), K(table_id), K(table_name));
......@@ -180,6 +180,25 @@ int ObInnerTableSchema::all_virtual_auto_increment_schema(ObTableSchema &table_s
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ObObj truncate_version_default;
truncate_version_default.set_int(-1);
ADD_COLUMN_SCHEMA_T("truncate_version", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false, //is_autoincrement
truncate_version_default,
truncate_version_default); //default_value
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
......
......@@ -7055,6 +7055,21 @@ int ObInnerTableSchema::all_virtual_auto_increment_real_agent_ora_schema(ObTable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("TRUNCATE_VERSION", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("GMT_CREATE", //column_name
++column_id, //column_id
......
......@@ -5318,6 +5318,25 @@ int ObInnerTableSchema::all_auto_increment_schema(ObTableSchema &table_schema)
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ObObj truncate_version_default;
truncate_version_default.set_int(-1);
ADD_COLUMN_SCHEMA_T("truncate_version", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false, //is_autoincrement
truncate_version_default,
truncate_version_default); //default_value
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
......
......@@ -1451,6 +1451,7 @@ def_table_schema(
('sequence_name', 'varchar:OB_MAX_SEQUENCE_NAME_LENGTH', 'true'),
('sequence_value', 'uint', 'true'),
('sync_value', 'uint'),
('truncate_version', 'int', 'false', '-1'),
],
)
......@@ -1713,6 +1713,7 @@ int ObTruncateTableExecutor::execute(ObExecContext &ctx, ObTruncateTableStmt &st
LOG_WARN("GCTX schema_service not init", K(ret));
} else if (OB_FAIL(GCTX.schema_service_->get_tenant_schema_guard(tenant_id, schema_guard))) {
LOG_WARN("fail to get tenant schema guard", K(ret), K(tenant_id));
} else if (FALSE_IT(schema_guard.set_session_id(truncate_table_arg.session_id_))) {
} else if (OB_FAIL(schema_guard.get_table_schema(tenant_id, database_name, table_name, false, table_schema))) {
LOG_WARN("fail to get table schema", K(ret), K(database_name), K(table_name));
} else if (OB_ISNULL(table_schema)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册