Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parser: use alter table remove ttl spec #39341

Merged
merged 2 commits into from
Nov 24, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 10 additions & 12 deletions parser/ast/ddl.go
Original file line number Diff line number Diff line change
Expand Up @@ -2083,7 +2083,6 @@ const (
TableOptionEncryption
TableOptionTTL
TableOptionTTLEnable
TableOptionNoTTL
TableOptionPlacementPolicy = TableOptionType(PlacementOptionPolicy)
TableOptionStatsBuckets = TableOptionType(StatsOptionBuckets)
TableOptionStatsTopN = TableOptionType(StatsOptionTopN)
Expand Down Expand Up @@ -2138,7 +2137,6 @@ type TableOption struct {
BoolValue bool
TimeUnitValue *TimeUnitExpr
Value ValueExpr
Expression ExprNode
TableNames []*TableName
ColumnName *ColumnName
}
Expand Down Expand Up @@ -2425,7 +2423,7 @@ func (n *TableOption) Restore(ctx *format.RestoreCtx) error {
ctx.WritePlain("= ")
ctx.WriteName(n.ColumnName.Name.String())
ctx.WritePlain(" + INTERVAL ")
err := n.Expression.Restore(ctx)
err := n.Value.Restore(ctx)
ctx.WritePlain(" ")
if err != nil {
return err
Expand All @@ -2443,11 +2441,6 @@ func (n *TableOption) Restore(ctx *format.RestoreCtx) error {
}
return nil
})
case TableOptionNoTTL:
_ = ctx.WriteWithSpecialComments(tidb.FeatureIDTTL, func() error {
ctx.WriteKeyWord("NO_TTL")
return nil
})
default:
return errors.Errorf("invalid TableOption: %d", n.Tp)
}
Expand All @@ -2461,12 +2454,12 @@ func (n *TableOption) Accept(v Visitor) (Node, bool) {
return v.Leave(newNode)
}
n = newNode.(*TableOption)
if n.Expression != nil {
node, ok := n.Expression.Accept(v)
if n.Value != nil {
node, ok := n.Value.Accept(v)
if !ok {
return n, false
}
n.Expression = node.(ExprNode)
n.Value = node.(ValueExpr)
}
if n.TimeUnitValue != nil {
node, ok := n.TimeUnitValue.Accept(v)
Expand Down Expand Up @@ -2666,6 +2659,7 @@ const (
AlterTableAddLastPartition
AlterTableReorganizeLastPartition
AlterTableReorganizeFirstPartition
AlterTableRemoveTTL
)

// LockType is the type for AlterTableSpec.
Expand Down Expand Up @@ -3347,7 +3341,11 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error {
if err := spec.Restore(ctx); err != nil {
return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.StatsOptionsSpec")
}

case AlterTableRemoveTTL:
_ = ctx.WriteWithSpecialComments(tidb.FeatureIDTTL, func() error {
ctx.WriteKeyWord("REMOVE TTL")
return nil
})
default:
// TODO: not support
ctx.WritePlainf(" /* AlterTableType(%d) is not supported */ ", n.Tp)
Expand Down
6 changes: 3 additions & 3 deletions parser/ast/ddl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -844,7 +844,7 @@ func TestFlashBackDatabaseRestore(t *testing.T) {
func TestTableOptionTTLRestore(t *testing.T) {
sourceSQL1 := "create table t (created_at datetime) ttl = created_at + INTERVAL 1 YEAR"
sourceSQL2 := "alter table t ttl_enable = 'OFF'"
sourceSQL3 := "alter table t no_ttl"
sourceSQL3 := "alter table t remove ttl"
cases := []struct {
sourceSQL string
flags format.RestoreFlags
Expand All @@ -854,8 +854,8 @@ func TestTableOptionTTLRestore(t *testing.T) {
{sourceSQL1, format.DefaultRestoreFlags | format.RestoreTiDBSpecialComment, "CREATE TABLE `t` (`created_at` DATETIME) /*T![ttl] TTL = `created_at` + INTERVAL 1 YEAR */"},
{sourceSQL2, format.DefaultRestoreFlags, "ALTER TABLE `t` TTL_ENABLE = 'OFF'"},
{sourceSQL2, format.DefaultRestoreFlags | format.RestoreTiDBSpecialComment, "ALTER TABLE `t` /*T![ttl] TTL_ENABLE = 'OFF' */"},
{sourceSQL3, format.DefaultRestoreFlags, "ALTER TABLE `t` NO_TTL"},
{sourceSQL3, format.DefaultRestoreFlags | format.RestoreTiDBSpecialComment, "ALTER TABLE `t` /*T![ttl] NO_TTL */"},
{sourceSQL3, format.DefaultRestoreFlags, "ALTER TABLE `t` REMOVE TTL"},
{sourceSQL3, format.DefaultRestoreFlags | format.RestoreTiDBSpecialComment, "ALTER TABLE `t` /*T![ttl] REMOVE TTL */"},
}

extractNodeFunc := func(node Node) Node {
Expand Down
1 change: 0 additions & 1 deletion parser/misc.go
Original file line number Diff line number Diff line change
Expand Up @@ -761,7 +761,6 @@ var tokenMap = map[string]int{
"TRUE_CARD_COST": trueCardCost,
"TTL": ttl,
"TTL_ENABLE": ttlEnable,
"NO_TTL": nottl,
"TYPE": tp,
"UNBOUNDED": unbounded,
"UNCOMMITTED": uncommitted,
Expand Down
Loading