You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
217 lines
19 KiB
217 lines
19 KiB
// Copyright 2020 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,
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package ddl
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
parser_mysql "github.com/pingcap/parser/mysql"
|
|
mysql "github.com/pingcap/tidb/errno"
|
|
"github.com/pingcap/tidb/util/dbterror"
|
|
)
|
|
|
|
var (
|
|
// errWorkerClosed means we have already closed the DDL worker.
|
|
errInvalidWorker = dbterror.ClassDDL.NewStd(mysql.ErrInvalidDDLWorker)
|
|
// errNotOwner means we are not owner and can't handle DDL jobs.
|
|
errNotOwner = dbterror.ClassDDL.NewStd(mysql.ErrNotOwner)
|
|
errCantDecodeIndex = dbterror.ClassDDL.NewStd(mysql.ErrCantDecodeIndex)
|
|
errInvalidDDLJob = dbterror.ClassDDL.NewStd(mysql.ErrInvalidDDLJob)
|
|
errCancelledDDLJob = dbterror.ClassDDL.NewStd(mysql.ErrCancelledDDLJob)
|
|
errFileNotFound = dbterror.ClassDDL.NewStd(mysql.ErrFileNotFound)
|
|
errRunMultiSchemaChanges = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "multi schema change"), nil))
|
|
errWaitReorgTimeout = dbterror.ClassDDL.NewStdErr(mysql.ErrLockWaitTimeout, mysql.MySQLErrName[mysql.ErrWaitReorgTimeout])
|
|
errInvalidStoreVer = dbterror.ClassDDL.NewStd(mysql.ErrInvalidStoreVersion)
|
|
// ErrRepairTableFail is used to repair tableInfo in repair mode.
|
|
ErrRepairTableFail = dbterror.ClassDDL.NewStd(mysql.ErrRepairTable)
|
|
|
|
// We don't support dropping column with index covered now.
|
|
errCantDropColWithIndex = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "drop column with index"), nil))
|
|
errUnsupportedAddColumn = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "add column"), nil))
|
|
errUnsupportedModifyColumn = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "modify column: %s"), nil))
|
|
errUnsupportedModifyCharset = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "modify %s"), nil))
|
|
errUnsupportedModifyCollation = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "modifying collation from %s to %s"), nil))
|
|
errUnsupportedPKHandle = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "drop integer primary key"), nil))
|
|
errUnsupportedCharset = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "charset %s and collate %s"), nil))
|
|
errUnsupportedShardRowIDBits = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "shard_row_id_bits for table with primary key as row id"), nil))
|
|
errBlobKeyWithoutLength = dbterror.ClassDDL.NewStd(mysql.ErrBlobKeyWithoutLength)
|
|
errKeyPart0 = dbterror.ClassDDL.NewStd(mysql.ErrKeyPart0)
|
|
errIncorrectPrefixKey = dbterror.ClassDDL.NewStd(mysql.ErrWrongSubKey)
|
|
errTooLongKey = dbterror.ClassDDL.NewStd(mysql.ErrTooLongKey)
|
|
errKeyColumnDoesNotExits = dbterror.ClassDDL.NewStd(mysql.ErrKeyColumnDoesNotExits)
|
|
errUnknownTypeLength = dbterror.ClassDDL.NewStd(mysql.ErrUnknownTypeLength)
|
|
errUnknownFractionLength = dbterror.ClassDDL.NewStd(mysql.ErrUnknownFractionLength)
|
|
errInvalidDDLJobVersion = dbterror.ClassDDL.NewStd(mysql.ErrInvalidDDLJobVersion)
|
|
errInvalidUseOfNull = dbterror.ClassDDL.NewStd(mysql.ErrInvalidUseOfNull)
|
|
errTooManyFields = dbterror.ClassDDL.NewStd(mysql.ErrTooManyFields)
|
|
errInvalidSplitRegionRanges = dbterror.ClassDDL.NewStd(mysql.ErrInvalidSplitRegionRanges)
|
|
errReorgPanic = dbterror.ClassDDL.NewStd(mysql.ErrReorgPanic)
|
|
errFkColumnCannotDrop = dbterror.ClassDDL.NewStd(mysql.ErrFkColumnCannotDrop)
|
|
errFKIncompatibleColumns = dbterror.ClassDDL.NewStd(mysql.ErrFKIncompatibleColumns)
|
|
|
|
errOnlyOnRangeListPartition = dbterror.ClassDDL.NewStd(mysql.ErrOnlyOnRangeListPartition)
|
|
// errWrongKeyColumn is for table column cannot be indexed.
|
|
errWrongKeyColumn = dbterror.ClassDDL.NewStd(mysql.ErrWrongKeyColumn)
|
|
// errWrongFKOptionForGeneratedColumn is for wrong foreign key reference option on generated columns.
|
|
errWrongFKOptionForGeneratedColumn = dbterror.ClassDDL.NewStd(mysql.ErrWrongFKOptionForGeneratedColumn)
|
|
// errUnsupportedOnGeneratedColumn is for unsupported actions on generated columns.
|
|
errUnsupportedOnGeneratedColumn = dbterror.ClassDDL.NewStd(mysql.ErrUnsupportedOnGeneratedColumn)
|
|
// errGeneratedColumnNonPrior forbids to refer generated column non prior to it.
|
|
errGeneratedColumnNonPrior = dbterror.ClassDDL.NewStd(mysql.ErrGeneratedColumnNonPrior)
|
|
// errDependentByGeneratedColumn forbids to delete columns which are dependent by generated columns.
|
|
errDependentByGeneratedColumn = dbterror.ClassDDL.NewStd(mysql.ErrDependentByGeneratedColumn)
|
|
// errJSONUsedAsKey forbids to use JSON as key or index.
|
|
errJSONUsedAsKey = dbterror.ClassDDL.NewStd(mysql.ErrJSONUsedAsKey)
|
|
// errBlobCantHaveDefault forbids to give not null default value to TEXT/BLOB/JSON.
|
|
errBlobCantHaveDefault = dbterror.ClassDDL.NewStd(mysql.ErrBlobCantHaveDefault)
|
|
errTooLongIndexComment = dbterror.ClassDDL.NewStd(mysql.ErrTooLongIndexComment)
|
|
// ErrInvalidDefaultValue returns for invalid default value for columns.
|
|
ErrInvalidDefaultValue = dbterror.ClassDDL.NewStd(mysql.ErrInvalidDefault)
|
|
// ErrGeneratedColumnRefAutoInc forbids to refer generated columns to auto-increment columns .
|
|
ErrGeneratedColumnRefAutoInc = dbterror.ClassDDL.NewStd(mysql.ErrGeneratedColumnRefAutoInc)
|
|
// ErrExpressionIndexCanNotRefer forbids to refer expression index to auto-increment column.
|
|
ErrExpressionIndexCanNotRefer = dbterror.ClassDDL.NewStd(mysql.ErrFunctionalIndexRefAutoIncrement)
|
|
// ErrUnsupportedAddPartition returns for does not support add partitions.
|
|
ErrUnsupportedAddPartition = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "add partitions"), nil))
|
|
// ErrUnsupportedCoalescePartition returns for does not support coalesce partitions.
|
|
ErrUnsupportedCoalescePartition = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "coalesce partitions"), nil))
|
|
errUnsupportedReorganizePartition = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "reorganize partition"), nil))
|
|
errUnsupportedCheckPartition = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "check partition"), nil))
|
|
errUnsupportedOptimizePartition = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "optimize partition"), nil))
|
|
errUnsupportedRebuildPartition = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "rebuild partition"), nil))
|
|
errUnsupportedRemovePartition = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "remove partitioning"), nil))
|
|
errUnsupportedExchangePartition = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "exchange partition"), nil))
|
|
// ErrGeneratedColumnFunctionIsNotAllowed returns for unsupported functions for generated columns.
|
|
ErrGeneratedColumnFunctionIsNotAllowed = dbterror.ClassDDL.NewStd(mysql.ErrGeneratedColumnFunctionIsNotAllowed)
|
|
// ErrUnsupportedPartitionByRangeColumns returns for does unsupported partition by range columns.
|
|
ErrUnsupportedPartitionByRangeColumns = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "partition by range columns"), nil))
|
|
errUnsupportedCreatePartition = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "partition type, treat as normal table"), nil))
|
|
errTablePartitionDisabled = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message("Partitions are ignored because Table Partition is disabled, please set 'tidb_enable_table_partition' if you need to need to enable it", nil))
|
|
errUnsupportedIndexType = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "index type"), nil))
|
|
errWindowInvalidWindowFuncUse = dbterror.ClassDDL.NewStd(mysql.ErrWindowInvalidWindowFuncUse)
|
|
|
|
// ErrDupKeyName returns for duplicated key name
|
|
ErrDupKeyName = dbterror.ClassDDL.NewStd(mysql.ErrDupKeyName)
|
|
// ErrInvalidDDLState returns for invalid ddl model object state.
|
|
ErrInvalidDDLState = dbterror.ClassDDL.NewStdErr(mysql.ErrInvalidDDLState, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrInvalidDDLState].Raw), nil))
|
|
// ErrUnsupportedModifyPrimaryKey returns an error when add or drop the primary key.
|
|
// It's exported for testing.
|
|
ErrUnsupportedModifyPrimaryKey = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "%s primary key"), nil))
|
|
|
|
// ErrColumnBadNull returns for a bad null value.
|
|
ErrColumnBadNull = dbterror.ClassDDL.NewStd(mysql.ErrBadNull)
|
|
// ErrBadField forbids to refer to unknown column.
|
|
ErrBadField = dbterror.ClassDDL.NewStd(mysql.ErrBadField)
|
|
// ErrCantRemoveAllFields returns for deleting all columns.
|
|
ErrCantRemoveAllFields = dbterror.ClassDDL.NewStd(mysql.ErrCantRemoveAllFields)
|
|
// ErrCantDropFieldOrKey returns for dropping a non-existent field or key.
|
|
ErrCantDropFieldOrKey = dbterror.ClassDDL.NewStd(mysql.ErrCantDropFieldOrKey)
|
|
// ErrInvalidOnUpdate returns for invalid ON UPDATE clause.
|
|
ErrInvalidOnUpdate = dbterror.ClassDDL.NewStd(mysql.ErrInvalidOnUpdate)
|
|
// ErrTooLongIdent returns for too long name of database/table/column/index.
|
|
ErrTooLongIdent = dbterror.ClassDDL.NewStd(mysql.ErrTooLongIdent)
|
|
// ErrWrongDBName returns for wrong database name.
|
|
ErrWrongDBName = dbterror.ClassDDL.NewStd(mysql.ErrWrongDBName)
|
|
// ErrWrongTableName returns for wrong table name.
|
|
ErrWrongTableName = dbterror.ClassDDL.NewStd(mysql.ErrWrongTableName)
|
|
// ErrWrongColumnName returns for wrong column name.
|
|
ErrWrongColumnName = dbterror.ClassDDL.NewStd(mysql.ErrWrongColumnName)
|
|
// ErrInvalidGroupFuncUse returns for using invalid group functions.
|
|
ErrInvalidGroupFuncUse = dbterror.ClassDDL.NewStd(mysql.ErrInvalidGroupFuncUse)
|
|
// ErrTableMustHaveColumns returns for missing column when creating a table.
|
|
ErrTableMustHaveColumns = dbterror.ClassDDL.NewStd(mysql.ErrTableMustHaveColumns)
|
|
// ErrWrongNameForIndex returns for wrong index name.
|
|
ErrWrongNameForIndex = dbterror.ClassDDL.NewStd(mysql.ErrWrongNameForIndex)
|
|
// ErrUnknownCharacterSet returns unknown character set.
|
|
ErrUnknownCharacterSet = dbterror.ClassDDL.NewStd(mysql.ErrUnknownCharacterSet)
|
|
// ErrUnknownCollation returns unknown collation.
|
|
ErrUnknownCollation = dbterror.ClassDDL.NewStd(mysql.ErrUnknownCollation)
|
|
// ErrCollationCharsetMismatch returns when collation not match the charset.
|
|
ErrCollationCharsetMismatch = dbterror.ClassDDL.NewStd(mysql.ErrCollationCharsetMismatch)
|
|
// ErrConflictingDeclarations return conflict declarations.
|
|
ErrConflictingDeclarations = dbterror.ClassDDL.NewStdErr(mysql.ErrConflictingDeclarations, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrConflictingDeclarations].Raw, "CHARACTER SET ", "%s", "CHARACTER SET ", "%s"), nil))
|
|
// ErrPrimaryCantHaveNull returns All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead
|
|
ErrPrimaryCantHaveNull = dbterror.ClassDDL.NewStd(mysql.ErrPrimaryCantHaveNull)
|
|
// ErrErrorOnRename returns error for wrong database name in alter table rename
|
|
ErrErrorOnRename = dbterror.ClassDDL.NewStd(mysql.ErrErrorOnRename)
|
|
// ErrViewSelectClause returns error for create view with select into clause
|
|
ErrViewSelectClause = dbterror.ClassDDL.NewStd(mysql.ErrViewSelectClause)
|
|
|
|
// ErrNotAllowedTypeInPartition returns not allowed type error when creating table partition with unsupported expression type.
|
|
ErrNotAllowedTypeInPartition = dbterror.ClassDDL.NewStd(mysql.ErrFieldTypeNotAllowedAsPartitionField)
|
|
// ErrPartitionMgmtOnNonpartitioned returns it's not a partition table.
|
|
ErrPartitionMgmtOnNonpartitioned = dbterror.ClassDDL.NewStd(mysql.ErrPartitionMgmtOnNonpartitioned)
|
|
// ErrDropPartitionNonExistent returns error in list of partition.
|
|
ErrDropPartitionNonExistent = dbterror.ClassDDL.NewStd(mysql.ErrDropPartitionNonExistent)
|
|
// ErrSameNamePartition returns duplicate partition name.
|
|
ErrSameNamePartition = dbterror.ClassDDL.NewStd(mysql.ErrSameNamePartition)
|
|
// ErrRangeNotIncreasing returns values less than value must be strictly increasing for each partition.
|
|
ErrRangeNotIncreasing = dbterror.ClassDDL.NewStd(mysql.ErrRangeNotIncreasing)
|
|
// ErrPartitionMaxvalue returns maxvalue can only be used in last partition definition.
|
|
ErrPartitionMaxvalue = dbterror.ClassDDL.NewStd(mysql.ErrPartitionMaxvalue)
|
|
// ErrDropLastPartition returns cannot remove all partitions, use drop table instead.
|
|
ErrDropLastPartition = dbterror.ClassDDL.NewStd(mysql.ErrDropLastPartition)
|
|
// ErrTooManyPartitions returns too many partitions were defined.
|
|
ErrTooManyPartitions = dbterror.ClassDDL.NewStd(mysql.ErrTooManyPartitions)
|
|
// ErrPartitionFunctionIsNotAllowed returns this partition function is not allowed.
|
|
ErrPartitionFunctionIsNotAllowed = dbterror.ClassDDL.NewStd(mysql.ErrPartitionFunctionIsNotAllowed)
|
|
// ErrPartitionFuncNotAllowed returns partition function returns the wrong type.
|
|
ErrPartitionFuncNotAllowed = dbterror.ClassDDL.NewStd(mysql.ErrPartitionFuncNotAllowed)
|
|
// ErrUniqueKeyNeedAllFieldsInPf returns must include all columns in the table's partitioning function.
|
|
ErrUniqueKeyNeedAllFieldsInPf = dbterror.ClassDDL.NewStd(mysql.ErrUniqueKeyNeedAllFieldsInPf)
|
|
errWrongExprInPartitionFunc = dbterror.ClassDDL.NewStd(mysql.ErrWrongExprInPartitionFunc)
|
|
// ErrWarnDataTruncated returns data truncated error.
|
|
ErrWarnDataTruncated = dbterror.ClassDDL.NewStd(mysql.WarnDataTruncated)
|
|
// ErrCoalesceOnlyOnHashPartition returns coalesce partition can only be used on hash/key partitions.
|
|
ErrCoalesceOnlyOnHashPartition = dbterror.ClassDDL.NewStd(mysql.ErrCoalesceOnlyOnHashPartition)
|
|
// ErrViewWrongList returns create view must include all columns in the select clause
|
|
ErrViewWrongList = dbterror.ClassDDL.NewStd(mysql.ErrViewWrongList)
|
|
// ErrAlterOperationNotSupported returns when alter operations is not supported.
|
|
ErrAlterOperationNotSupported = dbterror.ClassDDL.NewStd(mysql.ErrAlterOperationNotSupportedReason)
|
|
// ErrWrongObject returns for wrong object.
|
|
ErrWrongObject = dbterror.ClassDDL.NewStd(mysql.ErrWrongObject)
|
|
// ErrTableCantHandleFt returns FULLTEXT keys are not supported by table type
|
|
ErrTableCantHandleFt = dbterror.ClassDDL.NewStd(mysql.ErrTableCantHandleFt)
|
|
// ErrFieldNotFoundPart returns an error when 'partition by columns' are not found in table columns.
|
|
ErrFieldNotFoundPart = dbterror.ClassDDL.NewStd(mysql.ErrFieldNotFoundPart)
|
|
// ErrWrongTypeColumnValue returns 'Partition column values of incorrect type'
|
|
ErrWrongTypeColumnValue = dbterror.ClassDDL.NewStd(mysql.ErrWrongTypeColumnValue)
|
|
// ErrFunctionalIndexPrimaryKey returns 'The primary key cannot be a functional index'
|
|
ErrFunctionalIndexPrimaryKey = dbterror.ClassDDL.NewStd(mysql.ErrFunctionalIndexPrimaryKey)
|
|
// ErrFunctionalIndexOnField returns 'Functional index on a column is not supported. Consider using a regular index instead'
|
|
ErrFunctionalIndexOnField = dbterror.ClassDDL.NewStd(mysql.ErrFunctionalIndexOnField)
|
|
// ErrInvalidAutoRandom returns when auto_random is used incorrectly.
|
|
ErrInvalidAutoRandom = dbterror.ClassDDL.NewStd(mysql.ErrInvalidAutoRandom)
|
|
// ErrDerivedMustHaveAlias returns when a sub select statement does not have a table alias.
|
|
ErrDerivedMustHaveAlias = dbterror.ClassDDL.NewStd(mysql.ErrDerivedMustHaveAlias)
|
|
|
|
// ErrSequenceRunOut returns when the sequence has been run out.
|
|
ErrSequenceRunOut = dbterror.ClassDDL.NewStd(mysql.ErrSequenceRunOut)
|
|
// ErrSequenceInvalidData returns when sequence values are conflicting.
|
|
ErrSequenceInvalidData = dbterror.ClassDDL.NewStd(mysql.ErrSequenceInvalidData)
|
|
// ErrSequenceAccessFail returns when sequences are not able to access.
|
|
ErrSequenceAccessFail = dbterror.ClassDDL.NewStd(mysql.ErrSequenceAccessFail)
|
|
// ErrNotSequence returns when object is not a sequence.
|
|
ErrNotSequence = dbterror.ClassDDL.NewStd(mysql.ErrNotSequence)
|
|
// ErrUnknownSequence returns when drop / alter unknown sequence.
|
|
ErrUnknownSequence = dbterror.ClassDDL.NewStd(mysql.ErrUnknownSequence)
|
|
// ErrSequenceUnsupportedTableOption returns when unsupported table option exists in sequence.
|
|
ErrSequenceUnsupportedTableOption = dbterror.ClassDDL.NewStd(mysql.ErrSequenceUnsupportedTableOption)
|
|
// ErrColumnTypeUnsupportedNextValue is returned when sequence next value is assigned to unsupported column type.
|
|
ErrColumnTypeUnsupportedNextValue = dbterror.ClassDDL.NewStd(mysql.ErrColumnTypeUnsupportedNextValue)
|
|
// ErrAddColumnWithSequenceAsDefault is returned when the new added column with sequence's nextval as it's default value.
|
|
ErrAddColumnWithSequenceAsDefault = dbterror.ClassDDL.NewStd(mysql.ErrAddColumnWithSequenceAsDefault)
|
|
// ErrUnsupportedExpressionIndex is returned when create an expression index without allow-expression-index.
|
|
ErrUnsupportedExpressionIndex = dbterror.ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "creating expression index without allow-expression-index in config"), nil))
|
|
)
|
|
|