Files
tidb/pkg/ddl/constant.go

134 lines
4.5 KiB
Go

// Copyright 2022 PingCAP, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package ddl
import (
"github.com/pingcap/tidb/pkg/meta"
)
const (
// JobTable stores the information of DDL jobs.
JobTable = "tidb_ddl_job"
// ReorgTable stores the information of DDL reorganization.
ReorgTable = "tidb_ddl_reorg"
// HistoryTable stores the history DDL jobs.
HistoryTable = "tidb_ddl_history"
// JobTableID is the table ID of `tidb_ddl_job`.
JobTableID = meta.MaxInt48 - 1
// ReorgTableID is the table ID of `tidb_ddl_reorg`.
ReorgTableID = meta.MaxInt48 - 2
// HistoryTableID is the table ID of `tidb_ddl_history`.
HistoryTableID = meta.MaxInt48 - 3
// MDLTableID is the table ID of `tidb_mdl_info`.
MDLTableID = meta.MaxInt48 - 4
// BackgroundSubtaskTableID is the table ID of `tidb_background_subtask`.
BackgroundSubtaskTableID = meta.MaxInt48 - 5
// BackgroundSubtaskHistoryTableID is the table ID of `tidb_background_subtask_history`.
BackgroundSubtaskHistoryTableID = meta.MaxInt48 - 6
// NotifierTableID is the table ID of `tidb_ddl_notifier`.
NotifierTableID = meta.MaxInt48 - 7
// JobTableSQL is the CREATE TABLE SQL of `tidb_ddl_job`.
JobTableSQL = "create table " + JobTable + `(
job_id bigint not null,
reorg int,
schema_ids text(65535),
table_ids text(65535),
job_meta longblob,
type int,
processing int,
primary key(job_id))`
// ReorgTableSQL is the CREATE TABLE SQL of `tidb_ddl_reorg`.
ReorgTableSQL = "create table " + ReorgTable + `(
job_id bigint not null,
ele_id bigint,
ele_type blob,
start_key blob,
end_key blob,
physical_id bigint,
reorg_meta longblob,
unique key(job_id, ele_id, ele_type(20)))`
// HistoryTableSQL is the CREATE TABLE SQL of `tidb_ddl_history`.
HistoryTableSQL = "create table " + HistoryTable + `(
job_id bigint not null,
job_meta longblob,
db_name char(64),
table_name char(64),
schema_ids text(65535),
table_ids text(65535),
create_time datetime,
primary key(job_id))`
// BackgroundSubtaskTableSQL is the CREATE TABLE SQL of `tidb_background_subtask`.
BackgroundSubtaskTableSQL = `create table tidb_background_subtask (
id bigint not null auto_increment primary key,
step int,
namespace varchar(256),
task_key varchar(256),
ddl_physical_tid bigint(20),
type int,
exec_id varchar(261),
exec_expired timestamp,
state varchar(64) not null,
checkpoint longblob not null,
concurrency int,
create_time timestamp,
start_time bigint,
state_update_time bigint,
end_time TIMESTAMP,
meta longblob,
ordinal int,
error BLOB,
summary json,
key idx_task_key(task_key),
key idx_exec_id(exec_id),
unique uk_task_key_step_ordinal(task_key, step, ordinal)
)`
// BackgroundSubtaskHistoryTableSQL is the CREATE TABLE SQL of `tidb_background_subtask_history`.
BackgroundSubtaskHistoryTableSQL = `create table tidb_background_subtask_history (
id bigint not null auto_increment primary key,
step int,
namespace varchar(256),
task_key varchar(256),
ddl_physical_tid bigint(20),
type int,
exec_id varchar(261),
exec_expired timestamp,
state varchar(64) not null,
checkpoint longblob not null,
concurrency int,
create_time timestamp,
start_time bigint,
state_update_time bigint,
end_time TIMESTAMP,
meta longblob,
ordinal int,
error BLOB,
summary json,
key idx_task_key(task_key),
key idx_state_update_time(state_update_time))`
// NotifierTableName is `tidb_ddl_notifier`.
NotifierTableName = "tidb_ddl_notifier"
// NotifierTableSQL is the CREATE TABLE SQL of `tidb_ddl_notifier`.
NotifierTableSQL = `CREATE TABLE ` + NotifierTableName + ` (
ddl_job_id BIGINT,
sub_job_id BIGINT COMMENT '-1 if the schema change does not belong to a multi-schema change DDL or a merged DDL. 0 or positive numbers representing the sub-job index of a multi-schema change DDL or a merged DDL',
schema_change LONGBLOB COMMENT 'SchemaChangeEvent at rest',
processed_by_flag BIGINT UNSIGNED DEFAULT 0 COMMENT 'flag to mark which subscriber has processed the event',
PRIMARY KEY(ddl_job_id, sub_job_id))`
)