From 384e7f42f2ca9e929dc08409cbe3ccc9afcc26ac Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 26 Apr 2026 21:19:11 +0000 Subject: [PATCH 1/2] Remove pingcap/errors dependency in favor of stdlib Replace github.com/pingcap/errors throughout the codebase with stdlib errors and fmt: - errors.Trace/WithStack drop (no stack tracing) - errors.Annotate/Annotatef use fmt.Errorf with %w via local helpers - errors.Errorf -> fmt.Errorf, errors.New -> errors.New (stdlib) - errors.Cause -> internal walker via errors.Unwrap - errors.Normalize/Error/MySQLErrorCode/RFCCodeText replaced with a local Error type in the terror package Also drop pingcap/failpoint, the only remaining dependency on pingcap/errors. Its sole usage in RedactURL was a no-op since no failpoint enable mechanism is wired up in this codebase. The redact-mode constants used by parser.Normalize move from pingcap/errors into the parser package itself. --- ast/annotate.go | 30 ++++ ast/ddl.go | 261 ++++++++++++++++--------------- ast/dml.go | 255 +++++++++++++++--------------- ast/expressions.go | 76 ++++----- ast/functions.go | 63 ++++---- ast/misc.go | 196 ++++++++++++----------- ast/model.go | 3 +- ast/procedure.go | 8 +- ast/stats.go | 17 +- auth/mysql_native_password.go | 9 +- charset/charset.go | 12 +- duration/duration.go | 6 +- format/format_test.go | 6 +- go.mod | 3 - go.sum | 22 --- goyacc/format_yacc.go | 7 +- mysql/const.go | 9 +- mysql/error.go | 7 +- parser/digester.go | 15 +- parser/parser_test.go | 9 +- parser/redact.go | 22 +++ parser/yy_parser.go | 5 +- terror/error.go | 158 +++++++++++++++++++ terror/terror.go | 25 +-- terror/terror_test.go | 126 +-------------- test_driver/test_driver_datum.go | 15 +- 26 files changed, 708 insertions(+), 657 deletions(-) create mode 100644 ast/annotate.go create mode 100644 parser/redact.go create mode 100644 terror/error.go diff --git a/ast/annotate.go b/ast/annotate.go new file mode 100644 index 0000000..cab90bb --- /dev/null +++ b/ast/annotate.go @@ -0,0 +1,30 @@ +// Copyright 2025 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 ast + +import "fmt" + +func annotate(err error, msg string) error { + if err == nil { + return nil + } + return fmt.Errorf("%s: %w", msg, err) +} + +func annotatef(err error, format string, args ...any) error { + if err == nil { + return nil + } + return fmt.Errorf("%s: %w", fmt.Sprintf(format, args...), err) +} diff --git a/ast/ddl.go b/ast/ddl.go index d8d7ab4..c0d4dd7 100644 --- a/ast/ddl.go +++ b/ast/ddl.go @@ -14,9 +14,10 @@ package ast import ( + "errors" + "fmt" "strings" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/auth" "github.com/sqlc-dev/marino/format" "github.com/sqlc-dev/marino/mysql" @@ -128,7 +129,7 @@ func (n *DatabaseOption) Restore(ctx *format.RestoreCtx) error { ctx.WriteString(v) } default: - return errors.Errorf("invalid DatabaseOptionType: %d", n.Tp) + return fmt.Errorf("invalid DatabaseOptionType: %d", n.Tp) } return nil } @@ -154,7 +155,7 @@ func (n *CreateDatabaseStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") err := option.Restore(ctx) if err != nil { - return errors.Annotatef(err, "An error occurred while splicing CreateDatabaseStmt DatabaseOption: [%v]", i) + return annotatef(err, "An error occurred while splicing CreateDatabaseStmt DatabaseOption: [%v]", i) } } return nil @@ -204,7 +205,7 @@ func (n *AlterDatabaseStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") err := option.Restore(ctx) if err != nil { - return errors.Annotatef(err, "An error occurred while splicing AlterDatabaseStmt DatabaseOption: [%v]", i) + return annotatef(err, "An error occurred while splicing AlterDatabaseStmt DatabaseOption: [%v]", i) } } return nil @@ -305,7 +306,7 @@ func (n *IndexPartSpecification) Restore(ctx *format.RestoreCtx) error { if n.Expr != nil { ctx.WritePlain("(") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing IndexPartSpecifications") + return annotate(err, "An error occurred while splicing IndexPartSpecifications") } ctx.WritePlain(")") if n.Desc { @@ -314,7 +315,7 @@ func (n *IndexPartSpecification) Restore(ctx *format.RestoreCtx) error { return nil } if err := n.Column.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing IndexPartSpecifications") + return annotate(err, "An error occurred while splicing IndexPartSpecifications") } if n.Length > 0 { ctx.WritePlainf("(%d)", n.Length) @@ -376,7 +377,7 @@ func (n *ReferenceDef) Restore(ctx *format.RestoreCtx) error { if n.Table != nil { ctx.WriteKeyWord("REFERENCES ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing ReferenceDef") + return annotate(err, "An error occurred while splicing ReferenceDef") } } @@ -387,7 +388,7 @@ func (n *ReferenceDef) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := indexColNames.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing IndexPartSpecifications: [%v]", i) + return annotatef(err, "An error occurred while splicing IndexPartSpecifications: [%v]", i) } } ctx.WritePlain(")") @@ -407,13 +408,13 @@ func (n *ReferenceDef) Restore(ctx *format.RestoreCtx) error { if n.OnDelete.ReferOpt != ReferOptionNoOption { ctx.WritePlain(" ") if err := n.OnDelete.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing OnDelete") + return annotate(err, "An error occurred while splicing OnDelete") } } if n.OnUpdate.ReferOpt != ReferOptionNoOption { ctx.WritePlain(" ") if err := n.OnUpdate.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing OnUpdate") + return annotate(err, "An error occurred while splicing OnUpdate") } } return nil @@ -599,7 +600,7 @@ func (n *ColumnOption) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain("(") } if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing ColumnOption DefaultValue Expr") + return annotate(err, "An error occurred while splicing ColumnOption DefaultValue Expr") } if printOuterParentheses { ctx.WritePlain(")") @@ -614,20 +615,20 @@ func (n *ColumnOption) Restore(ctx *format.RestoreCtx) error { case ColumnOptionOnUpdate: ctx.WriteKeyWord("ON UPDATE ") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing ColumnOption ON UPDATE Expr") + return annotate(err, "An error occurred while splicing ColumnOption ON UPDATE Expr") } case ColumnOptionFulltext: return errors.New("TiDB Parser ignore the `ColumnOptionFulltext` type now") case ColumnOptionComment: ctx.WriteKeyWord("COMMENT ") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing ColumnOption COMMENT Expr") + return annotate(err, "An error occurred while splicing ColumnOption COMMENT Expr") } case ColumnOptionGenerated: ctx.WriteKeyWord("GENERATED ALWAYS AS") ctx.WritePlain("(") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing ColumnOption GENERATED ALWAYS Expr") + return annotate(err, "An error occurred while splicing ColumnOption GENERATED ALWAYS Expr") } ctx.WritePlain(")") if n.Stored { @@ -637,7 +638,7 @@ func (n *ColumnOption) Restore(ctx *format.RestoreCtx) error { } case ColumnOptionReference: if err := n.Refer.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing ColumnOption ReferenceDef") + return annotate(err, "An error occurred while splicing ColumnOption ReferenceDef") } case ColumnOptionCollate: if n.StrValue == "" { @@ -654,7 +655,7 @@ func (n *ColumnOption) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("CHECK") ctx.WritePlain("(") if err := n.Expr.Restore(ctx); err != nil { - return errors.Trace(err) + return err } ctx.WritePlain(")") if n.Enforced { @@ -858,7 +859,7 @@ func (n *IndexOption) Restore(ctx *format.RestoreCtx) error { } else { ctx.WritePlain("(") if err := n.SplitOpt.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing IndexOption SplitOpt") + return annotate(err, "An error occurred while splicing IndexOption SplitOpt") } ctx.WritePlain(")") } @@ -887,7 +888,7 @@ func (n *IndexOption) Restore(ctx *format.RestoreCtx) error { } ctx.WriteKeyWord("WHERE ") if err := n.Condition.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing IndexOption Condition") + return annotate(err, "An error occurred while splicing IndexOption Condition") } } @@ -995,7 +996,7 @@ func (n *Constraint) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("CHECK") ctx.WritePlain("(") if err := n.Expr.Restore(ctx); err != nil { - return errors.Trace(err) + return err } ctx.WritePlain(") ") if n.Enforced { @@ -1037,7 +1038,7 @@ func (n *Constraint) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := keys.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing Constraint Keys: [%v]", i) + return annotatef(err, "An error occurred while splicing Constraint Keys: [%v]", i) } } ctx.WritePlain(")") @@ -1045,14 +1046,14 @@ func (n *Constraint) Restore(ctx *format.RestoreCtx) error { if n.Refer != nil { ctx.WritePlain(" ") if err := n.Refer.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing Constraint Refer") + return annotate(err, "An error occurred while splicing Constraint Refer") } } if n.Option != nil && !n.Option.IsEmpty() { ctx.WritePlain(" ") if err := n.Option.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing Constraint Option") + return annotate(err, "An error occurred while splicing Constraint Option") } } @@ -1109,18 +1110,18 @@ type ColumnDef struct { // Restore implements Node interface. func (n *ColumnDef) Restore(ctx *format.RestoreCtx) error { if err := n.Name.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing ColumnDef Name") + return annotate(err, "An error occurred while splicing ColumnDef Name") } if n.Tp != nil { ctx.WritePlain(" ") if err := n.Tp.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing ColumnDef Type") + return annotate(err, "An error occurred while splicing ColumnDef Type") } } for i, options := range n.Options { ctx.WritePlain(" ") if err := options.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing ColumnDef ColumnOption: [%v]", i) + return annotatef(err, "An error occurred while splicing ColumnDef ColumnOption: [%v]", i) } } return nil @@ -1215,13 +1216,13 @@ func (n *CreateTableStmt) Restore(ctx *format.RestoreCtx) error { } if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing CreateTableStmt Table") + return annotate(err, "An error occurred while splicing CreateTableStmt Table") } if n.ReferTable != nil { ctx.WriteKeyWord(" LIKE ") if err := n.ReferTable.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing CreateTableStmt ReferTable") + return annotate(err, "An error occurred while splicing CreateTableStmt ReferTable") } } lenCols := len(n.Cols) @@ -1233,7 +1234,7 @@ func (n *CreateTableStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := col.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing CreateTableStmt ColumnDef: [%v]", i) + return annotatef(err, "An error occurred while splicing CreateTableStmt ColumnDef: [%v]", i) } } for i, constraint := range n.Constraints { @@ -1241,7 +1242,7 @@ func (n *CreateTableStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := constraint.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing CreateTableStmt Constraints: [%v]", i) + return annotatef(err, "An error occurred while splicing CreateTableStmt Constraints: [%v]", i) } } ctx.WritePlain(")") @@ -1251,21 +1252,21 @@ func (n *CreateTableStmt) Restore(ctx *format.RestoreCtx) error { for i, option := range options { ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing CreateTableStmt TableOption: [%v]", i) + return annotatef(err, "An error occurred while splicing CreateTableStmt TableOption: [%v]", i) } } if n.Partition != nil { ctx.WritePlain(" ") if err := n.Partition.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing CreateTableStmt Partition") + return annotate(err, "An error occurred while splicing CreateTableStmt Partition") } } for _, opt := range n.SplitIndex { ctx.WritePlain(" ") if err := opt.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing CreateTableStmt SplitIndex") + return annotate(err, "An error occurred while splicing CreateTableStmt SplitIndex") } } @@ -1280,7 +1281,7 @@ func (n *CreateTableStmt) Restore(ctx *format.RestoreCtx) error { } if err := n.Select.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing CreateTableStmt Select") + return annotate(err, "An error occurred while splicing CreateTableStmt Select") } } @@ -1394,7 +1395,7 @@ func (n *DropTableStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := table.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore DropTableStmt.Tables[%d]", index) + return annotatef(err, "An error occurred while restore DropTableStmt.Tables[%d]", index) } } @@ -1498,7 +1499,7 @@ func (n *OptimizeTableStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := table.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore OptimizeTableStmt.Tables[%d]", index) + return annotatef(err, "An error occurred while restore OptimizeTableStmt.Tables[%d]", index) } } return nil @@ -1532,7 +1533,7 @@ func (n *DropSequenceStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := sequence.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore DropSequenceStmt.Sequences[%d]", i) + return annotatef(err, "An error occurred while restore DropSequenceStmt.Sequences[%d]", i) } } @@ -1572,7 +1573,7 @@ func (n *RenameTableStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := table2table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore RenameTableStmt.TableToTables") + return annotate(err, "An error occurred while restore RenameTableStmt.TableToTables") } } return nil @@ -1607,11 +1608,11 @@ type TableToTable struct { // Restore implements Node interface. func (n *TableToTable) Restore(ctx *format.RestoreCtx) error { if err := n.OldTable.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore TableToTable.OldTable") + return annotate(err, "An error occurred while restore TableToTable.OldTable") } ctx.WriteKeyWord(" TO ") if err := n.NewTable.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore TableToTable.NewTable") + return annotate(err, "An error occurred while restore TableToTable.NewTable") } return nil } @@ -1680,7 +1681,7 @@ func (n *CreateViewStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(" VIEW ") if err := n.ViewName.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while create CreateViewStmt.ViewName") + return annotate(err, "An error occurred while create CreateViewStmt.ViewName") } for i, col := range n.Cols { @@ -1698,7 +1699,7 @@ func (n *CreateViewStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(" AS ") if err := n.Select.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while create CreateViewStmt.Select") + return annotate(err, "An error occurred while create CreateViewStmt.Select") } if n.CheckOption != CheckOptionCascaded { @@ -1757,7 +1758,7 @@ func (n *CreatePlacementPolicyStmt) Restore(ctx *format.RestoreCtx) error { for i, option := range n.PlacementOptions { ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing CreatePlacementPolicy TableOption: [%v]", i) + return annotatef(err, "An error occurred while splicing CreatePlacementPolicy TableOption: [%v]", i) } } return nil @@ -1867,16 +1868,16 @@ func (n *CreateMaskingPolicyStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteName(n.PolicyName.O) ctx.WriteKeyWord(" ON ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CreateMaskingPolicyStmt.Table") + return annotate(err, "An error occurred while restore CreateMaskingPolicyStmt.Table") } ctx.WritePlain(" (") if err := n.Column.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CreateMaskingPolicyStmt.Column") + return annotate(err, "An error occurred while restore CreateMaskingPolicyStmt.Column") } ctx.WritePlain(") ") ctx.WriteKeyWord("AS ") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CreateMaskingPolicyStmt.Expr") + return annotate(err, "An error occurred while restore CreateMaskingPolicyStmt.Expr") } if n.RestrictOps != MaskingPolicyRestrictOpNone { ctx.WritePlain(" ") @@ -1952,7 +1953,7 @@ func (n *CreateResourceGroupStmt) Restore(ctx *format.RestoreCtx) error { } ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing CreateResourceGroupStmt Option: [%v]", i) + return annotatef(err, "An error occurred while splicing CreateResourceGroupStmt Option: [%v]", i) } } return nil @@ -1987,18 +1988,18 @@ func (n *CreateSequenceStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("IF NOT EXISTS ") } if err := n.Name.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while create CreateSequenceStmt.Name") + return annotate(err, "An error occurred while create CreateSequenceStmt.Name") } for i, option := range n.SeqOptions { ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing CreateSequenceStmt SequenceOption: [%v]", i) + return annotatef(err, "An error occurred while splicing CreateSequenceStmt SequenceOption: [%v]", i) } } for i, option := range n.TblOptions { ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing CreateSequenceStmt TableOption: [%v]", i) + return annotatef(err, "An error occurred while splicing CreateSequenceStmt TableOption: [%v]", i) } } return nil @@ -2114,7 +2115,7 @@ func (n *CreateIndexStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteName(n.IndexName) ctx.WriteKeyWord(" ON ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CreateIndexStmt.Table") + return annotate(err, "An error occurred while restore CreateIndexStmt.Table") } ctx.WritePlain(" (") @@ -2123,7 +2124,7 @@ func (n *CreateIndexStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := indexColName.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore CreateIndexStmt.IndexPartSpecifications: [%v]", i) + return annotatef(err, "An error occurred while restore CreateIndexStmt.IndexPartSpecifications: [%v]", i) } } ctx.WritePlain(")") @@ -2131,14 +2132,14 @@ func (n *CreateIndexStmt) Restore(ctx *format.RestoreCtx) error { if n.IndexOption != nil && !n.IndexOption.IsEmpty() { ctx.WritePlain(" ") if err := n.IndexOption.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CreateIndexStmt.IndexOption") + return annotate(err, "An error occurred while restore CreateIndexStmt.IndexOption") } } if n.LockAlg != nil { ctx.WritePlain(" ") if err := n.LockAlg.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CreateIndexStmt.LockAlg") + return annotate(err, "An error occurred while restore CreateIndexStmt.LockAlg") } } @@ -2203,13 +2204,13 @@ func (n *DropIndexStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(" ON ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while add index") + return annotate(err, "An error occurred while add index") } if n.LockAlg != nil { ctx.WritePlain(" ") if err := n.LockAlg.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CreateIndexStmt.LockAlg") + return annotate(err, "An error occurred while restore CreateIndexStmt.LockAlg") } } @@ -2276,7 +2277,7 @@ func (n *LockTablesStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := tl.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while add index") + return annotate(err, "An error occurred while add index") } ctx.WriteKeyWord(" " + tl.Type.String()) } @@ -2332,7 +2333,7 @@ func (n *CleanupTableLockStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore CleanupTableLockStmt.Tables[%d]", i) + return annotatef(err, "An error occurred while restore CleanupTableLockStmt.Tables[%d]", i) } } return nil @@ -2369,11 +2370,11 @@ func (n *RepairTableStmt) Accept(v Visitor) (Node, bool) { func (n *RepairTableStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("ADMIN REPAIR TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore RepairTableStmt.table : [%v]", n.Table) + return annotatef(err, "An error occurred while restore RepairTableStmt.table : [%v]", n.Table) } ctx.WritePlain(" ") if err := n.CreateStmt.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore RepairTableStmt.createStmt : [%v]", n.CreateStmt) + return annotatef(err, "An error occurred while restore RepairTableStmt.createStmt : [%v]", n.CreateStmt) } return nil } @@ -2464,7 +2465,7 @@ func (n *PlacementOption) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain("= ") ctx.WriteString(n.StrValue) default: - return errors.Errorf("invalid PlacementOption: %d", n.Tp) + return fmt.Errorf("invalid PlacementOption: %d", n.Tp) } return nil } @@ -2556,7 +2557,7 @@ func (n *ResourceGroupOption) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") } if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing ResourceGroupRunaway Option: [%v]", option) + return annotatef(err, "An error occurred while splicing ResourceGroupRunaway Option: [%v]", option) } } ctx.WritePlain(")") @@ -2573,7 +2574,7 @@ func (n *ResourceGroupOption) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing ResourceGroup Background Option: [%v]", option) + return annotatef(err, "An error occurred while splicing ResourceGroup Background Option: [%v]", option) } } ctx.WritePlain(")") @@ -2581,7 +2582,7 @@ func (n *ResourceGroupOption) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain("NULL") } default: - return errors.Errorf("invalid ResourceGroupOption: %d", n.Tp) + return fmt.Errorf("invalid ResourceGroupOption: %d", n.Tp) } return nil } @@ -2603,7 +2604,7 @@ func (n *ResourceGroupRunawayOption) Restore(ctx *format.RestoreCtx) error { case RunawayWatch: n.WatchOption.restore(ctx) default: - return errors.Errorf("invalid ResourceGroupRunawayOption: %d", n.Tp) + return fmt.Errorf("invalid ResourceGroupRunawayOption: %d", n.Tp) } return nil } @@ -2725,7 +2726,7 @@ func (n *ResourceGroupBackgroundOption) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" = ") ctx.WritePlainf("%d", n.UintValue) default: - return errors.Errorf("unknown ResourceGroupBackgroundOption: %d", n.Type) + return fmt.Errorf("unknown ResourceGroupBackgroundOption: %d", n.Type) } return nil @@ -3002,7 +3003,7 @@ func (n *TableOption) Restore(ctx *format.RestoreCtx) error { case TokuDBRowFormatUncompressed: ctx.WriteKeyWord("TOKUDB_UNCOMPRESSED") default: - return errors.Errorf("invalid TableOption: TableOptionRowFormat: %d", n.UintValue) + return fmt.Errorf("invalid TableOption: TableOptionRowFormat: %d", n.UintValue) } case TableOptionStatsPersistent: // TODO: not support @@ -3221,7 +3222,7 @@ func (n *TableOption) Restore(ctx *format.RestoreCtx) error { return nil }) default: - return errors.Errorf("invalid TableOption: %d", n.Tp) + return fmt.Errorf("invalid TableOption: %d", n.Tp) } return nil } @@ -3310,7 +3311,7 @@ func (n *SequenceOption) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("RESTART WITH ") ctx.WritePlainf("%d", n.IntValue) default: - return errors.Errorf("invalid SequenceOption: %d", n.Tp) + return fmt.Errorf("invalid SequenceOption: %d", n.Tp) } return nil } @@ -3344,10 +3345,10 @@ func (n *ColumnPosition) Restore(ctx *format.RestoreCtx) error { case ColumnPositionAfter: ctx.WriteKeyWord("AFTER ") if err := n.RelativeColumn.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ColumnPosition.RelativeColumn") + return annotate(err, "An error occurred while restore ColumnPosition.RelativeColumn") } default: - return errors.Errorf("invalid ColumnPositionType: %d", n.Tp) + return fmt.Errorf("invalid ColumnPositionType: %d", n.Tp) } return nil } @@ -3570,7 +3571,7 @@ type AlterOrderItem struct { // Restore implements Node interface. func (n *AlterOrderItem) Restore(ctx *format.RestoreCtx) error { if err := n.Column.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterOrderItem.Column") + return annotate(err, "An error occurred while restore AlterOrderItem.Column") } if n.Desc { ctx.WriteKeyWord(" DESC") @@ -3630,7 +3631,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := col.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AddStatisticsSpec.Columns: [%v]", i) + return annotatef(err, "An error occurred while restore AddStatisticsSpec.Columns: [%v]", i) } } ctx.WritePlain(")") @@ -3645,12 +3646,12 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WriteName(n.MaskingPolicyName.O) ctx.WritePlain(" ON (") if err := n.MaskingPolicyColumn.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.MaskingPolicyColumn") + return annotate(err, "An error occurred while restore AlterTableSpec.MaskingPolicyColumn") } ctx.WritePlain(") ") ctx.WriteKeyWord("AS ") if err := n.MaskingPolicyExpr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.MaskingPolicyExpr") + return annotate(err, "An error occurred while restore AlterTableSpec.MaskingPolicyExpr") } if n.MaskingPolicyRestrictOps != MaskingPolicyRestrictOpNone { ctx.WritePlain(" ") @@ -3678,7 +3679,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WriteName(n.MaskingPolicyName.O) ctx.WriteKeyWord(" SET EXPRESSION = ") if err := n.MaskingPolicyExpr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.MaskingPolicyExpr") + return annotate(err, "An error occurred while restore AlterTableSpec.MaskingPolicyExpr") } case AlterTableModifyMaskingPolicyRestrictOn: ctx.WriteKeyWord("MODIFY MASKING POLICY ") @@ -3710,7 +3711,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") } if err := opt.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.Options[%d]", i) + return annotatef(err, "An error occurred while restore AlterTableSpec.Options[%d]", i) } } } @@ -3721,13 +3722,13 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { } if n.Position != nil && len(n.NewColumns) == 1 { if err := n.NewColumns[0].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.NewColumns[%d]", 0) + return annotatef(err, "An error occurred while restore AlterTableSpec.NewColumns[%d]", 0) } if n.Position.Tp != ColumnPositionNone { ctx.WritePlain(" ") } if err := n.Position.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.Position") + return annotate(err, "An error occurred while restore AlterTableSpec.Position") } } else { lenCols := len(n.NewColumns) @@ -3737,7 +3738,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := col.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.NewColumns[%d]", i) + return annotatef(err, "An error occurred while restore AlterTableSpec.NewColumns[%d]", i) } } for i, constraint := range n.NewConstraints { @@ -3745,7 +3746,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := constraint.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.NewConstraints[%d]", i) + return annotatef(err, "An error occurred while restore AlterTableSpec.NewConstraints[%d]", i) } } ctx.WritePlain(")") @@ -3753,7 +3754,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { case AlterTableAddConstraint: ctx.WriteKeyWord("ADD ") if err := n.Constraint.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.Constraint") + return annotate(err, "An error occurred while restore AlterTableSpec.Constraint") } case AlterTableDropColumn: ctx.WriteKeyWord("DROP COLUMN ") @@ -3761,7 +3762,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWordWithSpecialComments(tidb.FeatureIDTiDB, "IF EXISTS ") } if err := n.OldColumnName.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.OldColumnName") + return annotate(err, "An error occurred while restore AlterTableSpec.OldColumnName") } // TODO: RestrictOrCascadeOpt not support case AlterTableDropPrimaryKey: @@ -3784,13 +3785,13 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWordWithSpecialComments(tidb.FeatureIDTiDB, "IF EXISTS ") } if err := n.NewColumns[0].Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0]") + return annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0]") } if n.Position.Tp != ColumnPositionNone { ctx.WritePlain(" ") } if err := n.Position.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.Position") + return annotate(err, "An error occurred while restore AlterTableSpec.Position") } case AlterTableChangeColumn: ctx.WriteKeyWord("CHANGE COLUMN ") @@ -3798,48 +3799,48 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWordWithSpecialComments(tidb.FeatureIDTiDB, "IF EXISTS ") } if err := n.OldColumnName.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.OldColumnName") + return annotate(err, "An error occurred while restore AlterTableSpec.OldColumnName") } ctx.WritePlain(" ") if err := n.NewColumns[0].Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0]") + return annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0]") } if n.Position.Tp != ColumnPositionNone { ctx.WritePlain(" ") } if err := n.Position.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.Position") + return annotate(err, "An error occurred while restore AlterTableSpec.Position") } case AlterTableRenameColumn: ctx.WriteKeyWord("RENAME COLUMN ") if err := n.OldColumnName.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.OldColumnName") + return annotate(err, "An error occurred while restore AlterTableSpec.OldColumnName") } ctx.WriteKeyWord(" TO ") if err := n.NewColumnName.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewColumnName") + return annotate(err, "An error occurred while restore AlterTableSpec.NewColumnName") } case AlterTableRenameTable: ctx.WriteKeyWord("RENAME AS ") if err := n.NewTable.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewTable") + return annotate(err, "An error occurred while restore AlterTableSpec.NewTable") } case AlterTableAlterColumn: ctx.WriteKeyWord("ALTER COLUMN ") if err := n.NewColumns[0].Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0]") + return annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0]") } if len(n.NewColumns[0].Options) == 1 { ctx.WriteKeyWord("SET DEFAULT ") expr := n.NewColumns[0].Options[0].Expr if valueExpr, ok := expr.(ValueExpr); ok { if err := valueExpr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0].Options[0].Expr") + return annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0].Options[0].Expr") } } else { ctx.WritePlain("(") if err := expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0].Options[0].Expr") + return annotate(err, "An error occurred while restore AlterTableSpec.NewColumns[0].Options[0].Expr") } ctx.WritePlain(")") } @@ -3864,7 +3865,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := alterOrderItem.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.OrderByList[%d]", i) + return annotatef(err, "An error occurred while restore AlterTableSpec.OrderByList[%d]", i) } } case AlterTableAlgorithm: @@ -3895,7 +3896,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := def.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.PartDefinitions[%d]", i) + return annotatef(err, "An error occurred while restore AlterTableSpec.PartDefinitions[%d]", i) } } ctx.WritePlain(")") @@ -3906,7 +3907,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { case AlterTableDropFirstPartition: ctx.WriteKeyWord("FIRST PARTITION LESS THAN (") if err := n.Partition.PartitionMethod.Expr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableDropFirstPartition Exprs") + return annotatef(err, "An error occurred while restore AlterTableDropFirstPartition Exprs") } ctx.WriteKeyWord(")") if n.NoWriteToBinlog { @@ -3915,7 +3916,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { case AlterTableAddLastPartition: ctx.WriteKeyWord("LAST PARTITION LESS THAN (") if err := n.Partition.PartitionMethod.Expr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableAddLastPartition Exprs") + return annotatef(err, "An error occurred while restore AlterTableAddLastPartition Exprs") } ctx.WriteKeyWord(")") if n.NoWriteToBinlog { @@ -3937,7 +3938,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") } if err := opt.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.Options[%d] for PARTITION `%s`", i, n.PartitionNames[0].O) + return annotatef(err, "An error occurred while restore AlterTableSpec.Options[%d] for PARTITION `%s`", i, n.PartitionNames[0].O) } } return nil @@ -3961,7 +3962,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { spec := n.AttributesSpec if err := spec.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.AttributesSpec") + return annotatef(err, "An error occurred while restore AlterTableSpec.AttributesSpec") } case AlterTableCoalescePartitions: ctx.WriteKeyWord("COALESCE PARTITION ") @@ -4062,7 +4063,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(" TABLESPACE") case AlterTablePartition: if err := n.Partition.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableSpec.Partition") + return annotate(err, "An error occurred while restore AlterTableSpec.Partition") } case AlterTableEnableKeys: ctx.WriteKeyWord("ENABLE KEYS") @@ -4092,13 +4093,13 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { case AlterTableReorganizeLastPartition: ctx.WriteKeyWord("SPLIT MAXVALUE PARTITION LESS THAN (") if err := n.Partition.PartitionMethod.Expr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableReorganizeLastPartition Exprs") + return annotatef(err, "An error occurred while restore AlterTableReorganizeLastPartition Exprs") } ctx.WriteKeyWord(")") case AlterTableReorganizeFirstPartition: ctx.WriteKeyWord("MERGE FIRST PARTITION LESS THAN (") if err := n.Partition.PartitionMethod.Expr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableReorganizeLastPartition Exprs") + return annotatef(err, "An error occurred while restore AlterTableReorganizeLastPartition Exprs") } ctx.WriteKeyWord(")") case AlterTableReorganizePartition: @@ -4125,7 +4126,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := def.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.PartDefinitions[%d]", i) + return annotatef(err, "An error occurred while restore AlterTableSpec.PartDefinitions[%d]", i) } } ctx.WritePlain(")") @@ -4168,7 +4169,7 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { case AlterTableAttributes: spec := n.AttributesSpec if err := spec.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.AttributesSpec") + return annotatef(err, "An error occurred while restore AlterTableSpec.AttributesSpec") } case AlterTableCache: ctx.WriteKeyWord("CACHE") @@ -4177,14 +4178,14 @@ func (n *AlterTableSpec) Restore(ctx *format.RestoreCtx) error { case AlterTableStatsOptions: spec := n.StatsOptionsSpec if err := spec.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.StatsOptionsSpec") + return annotatef(err, "An error occurred while restore AlterTableSpec.StatsOptionsSpec") } case AlterTableRemoveTTL: ctx.WriteKeyWordWithSpecialComments(tidb.FeatureIDTTL, "REMOVE TTL") case AlterTableSplitIndex: spec := n.SplitIndex if err := spec.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableSpec.SplitIndex") + return annotatef(err, "An error occurred while restore AlterTableSpec.SplitIndex") } default: // TODO: not support @@ -4313,7 +4314,7 @@ func (n *AlterTableStmt) Restore(ctx *format.RestoreCtx) error { } ctx.WriteKeyWord("ALTER TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterTableStmt.Table") + return annotate(err, "An error occurred while restore AlterTableStmt.Table") } specs := make([]*AlterTableSpec, 0, len(n.Specs)) for _, spec := range n.Specs { @@ -4338,7 +4339,7 @@ func (n *AlterTableStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := spec.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterTableStmt.Specs[%d]", i) + return annotatef(err, "An error occurred while restore AlterTableStmt.Specs[%d]", i) } } return nil @@ -4378,7 +4379,7 @@ type TruncateTableStmt struct { func (n *TruncateTableStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("TRUNCATE TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore TruncateTableStmt.Table") + return annotate(err, "An error occurred while restore TruncateTableStmt.Table") } return nil } @@ -4427,7 +4428,7 @@ func (spd *SubPartitionDefinition) Restore(ctx *format.RestoreCtx) error { for i, opt := range spd.Options { ctx.WritePlain(" ") if err := opt.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore SubPartitionDefinition.Options[%d]", i) + return annotatef(err, "An error occurred while restore SubPartitionDefinition.Options[%d]", i) } } return nil @@ -4477,7 +4478,7 @@ func (n *PartitionDefinitionClauseLessThan) restore(ctx *format.RestoreCtx) erro ctx.WritePlain(", ") } if err := expr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore PartitionDefinitionClauseLessThan.Exprs[%d]", i) + return annotatef(err, "An error occurred while restore PartitionDefinitionClauseLessThan.Exprs[%d]", i) } } ctx.WritePlain(")") @@ -4536,7 +4537,7 @@ func (n *PartitionDefinitionClauseIn) restore(ctx *format.RestoreCtx) error { } if len(valList) == 1 { if err := valList[0].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore PartitionDefinitionClauseIn.Values[%d][0]", i) + return annotatef(err, "An error occurred while restore PartitionDefinitionClauseIn.Values[%d][0]", i) } } else { ctx.WritePlain("(") @@ -4545,7 +4546,7 @@ func (n *PartitionDefinitionClauseIn) restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := val.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore PartitionDefinitionClauseIn.Values[%d][%d]", i, j) + return annotatef(err, "An error occurred while restore PartitionDefinitionClauseIn.Values[%d][%d]", i, j) } } ctx.WritePlain(")") @@ -4671,13 +4672,13 @@ func (n *PartitionDefinition) Restore(ctx *format.RestoreCtx) error { ctx.WriteName(n.Name.O) if err := n.Clause.restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PartitionDefinition.Clause") + return annotate(err, "An error occurred while restore PartitionDefinition.Clause") } for i, opt := range n.Options { ctx.WritePlain(" ") if err := opt.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore PartitionDefinition.Options[%d]", i) + return annotatef(err, "An error occurred while restore PartitionDefinition.Options[%d]", i) } } @@ -4688,7 +4689,7 @@ func (n *PartitionDefinition) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := spd.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore PartitionDefinition.Sub[%d]", i) + return annotatef(err, "An error occurred while restore PartitionDefinition.Sub[%d]", i) } } ctx.WritePlain(")") @@ -4764,7 +4765,7 @@ func (n *PartitionMethod) Restore(ctx *format.RestoreCtx) error { if n.Expr != nil && n.Unit != TimeUnitInvalid { ctx.WriteKeyWord(" INTERVAL ") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PartitionMethod.Expr") + return annotate(err, "An error occurred while restore PartitionMethod.Expr") } ctx.WritePlain(" ") ctx.WriteKeyWord(n.Unit.String()) @@ -4777,7 +4778,7 @@ func (n *PartitionMethod) Restore(ctx *format.RestoreCtx) error { case n.Expr != nil: ctx.WritePlain(" (") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PartitionMethod.Expr") + return annotate(err, "An error occurred while restore PartitionMethod.Expr") } ctx.WritePlain(")") @@ -4791,7 +4792,7 @@ func (n *PartitionMethod) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := col.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing PartitionMethod.ColumnName[%d]", i) + return annotatef(err, "An error occurred while splicing PartitionMethod.ColumnName[%d]", i) } } ctx.WritePlain(")") @@ -4912,7 +4913,7 @@ func (n *PartitionOptions) Validate() error { func (n *PartitionOptions) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("PARTITION BY ") if err := n.PartitionMethod.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PartitionOptions.PartitionMethod") + return annotate(err, "An error occurred while restore PartitionOptions.PartitionMethod") } if n.Num > 0 && len(n.Definitions) == 0 { @@ -4923,7 +4924,7 @@ func (n *PartitionOptions) Restore(ctx *format.RestoreCtx) error { if n.Sub != nil { ctx.WriteKeyWord(" SUBPARTITION BY ") if err := n.Sub.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PartitionOptions.Sub") + return annotate(err, "An error occurred while restore PartitionOptions.Sub") } if n.Sub.Num > 0 { ctx.WriteKeyWord(" SUBPARTITIONS ") @@ -4938,7 +4939,7 @@ func (n *PartitionOptions) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := def.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore PartitionOptions.Definitions[%d]", i) + return annotatef(err, "An error occurred while restore PartitionOptions.Definitions[%d]", i) } } ctx.WritePlain(")") @@ -4998,7 +4999,7 @@ func (n *RecoverTableStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("RECOVER TABLE ") if n.Table != nil { if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing RecoverTableStmt Table") + return annotate(err, "An error occurred while splicing RecoverTableStmt Table") } if n.JobNum > 0 { ctx.WritePlainf(" %d", n.JobNum) @@ -5048,7 +5049,7 @@ func (n *FlashBackToTimestampStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := table.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore DropTableStmt.Tables[%d]", index) + return annotatef(err, "An error occurred while restore DropTableStmt.Tables[%d]", index) } } } else if n.DBName.O != "" { @@ -5060,7 +5061,7 @@ func (n *FlashBackToTimestampStmt) Restore(ctx *format.RestoreCtx) error { if n.FlashbackTSO == 0 { ctx.WriteKeyWord(" TO TIMESTAMP ") if err := n.FlashbackTS.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing FlashBackToTimestampStmt.FlashbackTS") + return annotate(err, "An error occurred while splicing FlashBackToTimestampStmt.FlashbackTS") } } else { ctx.WriteKeyWord(" TO TSO ") @@ -5108,7 +5109,7 @@ type FlashBackTableStmt struct { func (n *FlashBackTableStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("FLASHBACK TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing RecoverTableStmt Table") + return annotate(err, "An error occurred while splicing RecoverTableStmt Table") } if len(n.NewName) > 0 { ctx.WriteKeyWord(" TO ") @@ -5214,7 +5215,7 @@ func (n *AlterPlacementPolicyStmt) Restore(ctx *format.RestoreCtx) error { for i, option := range n.PlacementOptions { ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing AlterPlacementPolicyStmt TableOption: [%v]", i) + return annotatef(err, "An error occurred while splicing AlterPlacementPolicyStmt TableOption: [%v]", i) } } return nil @@ -5285,7 +5286,7 @@ func (n *AlterResourceGroupStmt) Restore(ctx *format.RestoreCtx) error { } ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing AlterResourceGroupStmt Options: [%v]", i) + return annotatef(err, "An error occurred while splicing AlterResourceGroupStmt Options: [%v]", i) } } return nil @@ -5317,12 +5318,12 @@ func (n *AlterSequenceStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("IF EXISTS ") } if err := n.Name.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterSequenceStmt.Table") + return annotate(err, "An error occurred while restore AlterSequenceStmt.Table") } for i, option := range n.SeqOptions { ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing AlterSequenceStmt SequenceOption: [%v]", i) + return annotatef(err, "An error occurred while splicing AlterSequenceStmt SequenceOption: [%v]", i) } } return nil diff --git a/ast/dml.go b/ast/dml.go index 7cf5bd9..31c4d93 100644 --- a/ast/dml.go +++ b/ast/dml.go @@ -14,10 +14,11 @@ package ast import ( + "errors" + "fmt" "reflect" "strings" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/auth" "github.com/sqlc-dev/marino/format" "github.com/sqlc-dev/marino/mysql" @@ -176,7 +177,7 @@ func (n *Join) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain("(") } if err := n.Left.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore Join.Left") + return annotate(err, "An error occurred while restore Join.Left") } if leftIsJoin && !useCommaJoin { ctx.WritePlain(")") @@ -207,7 +208,7 @@ func (n *Join) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain("(") } if err := n.Right.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore Join.Right") + return annotate(err, "An error occurred while restore Join.Right") } if rightIsJoin { ctx.WritePlain(")") @@ -216,7 +217,7 @@ func (n *Join) Restore(ctx *format.RestoreCtx) error { if n.On != nil { ctx.WritePlain(" ") if err := n.On.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore Join.On") + return annotate(err, "An error occurred while restore Join.On") } } if len(n.Using) != 0 { @@ -227,7 +228,7 @@ func (n *Join) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := v.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore Join.Using") + return annotate(err, "An error occurred while restore Join.Using") } } ctx.WritePlain(")") @@ -330,7 +331,7 @@ func (n *TableName) restoreIndexHints(ctx *format.RestoreCtx) error { for _, value := range n.IndexHints { ctx.WritePlain(" ") if err := value.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing IndexHints") + return annotate(err, "An error occurred while splicing IndexHints") } } return nil @@ -345,13 +346,13 @@ func (n *TableName) Restore(ctx *format.RestoreCtx) error { if n.AsOf != nil { ctx.WritePlain(" ") if err := n.AsOf.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing TableName.Asof") + return annotate(err, "An error occurred while splicing TableName.Asof") } } if n.TableSample != nil { ctx.WritePlain(" ") if err := n.TableSample.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing TableName.TableSample") + return annotate(err, "An error occurred while splicing TableName.TableSample") } } return nil @@ -469,7 +470,7 @@ func (n *DeleteTableList) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := t.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore DeleteTableList.Tables[%v]", i) + return annotatef(err, "An error occurred while restore DeleteTableList.Tables[%v]", i) } } return nil @@ -505,7 +506,7 @@ type OnCondition struct { func (n *OnCondition) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("ON ") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore OnCondition.Expr") + return annotate(err, "An error occurred while restore OnCondition.Expr") } return nil } @@ -596,16 +597,16 @@ func (n *TableSource) Restore(ctx *format.RestoreCtx) error { if tn.AsOf != nil { ctx.WritePlain(" ") if err := tn.AsOf.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore TableSource.AsOf") + return annotate(err, "An error occurred while restore TableSource.AsOf") } } if err := tn.restoreIndexHints(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore TableSource.Source.(*TableName).IndexHints") + return annotate(err, "An error occurred while restore TableSource.Source.(*TableName).IndexHints") } if tn.TableSample != nil { ctx.WritePlain(" ") if err := tn.TableSample.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing TableName.TableSample") + return annotate(err, "An error occurred while splicing TableName.TableSample") } } @@ -617,7 +618,7 @@ func (n *TableSource) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain("(") } if err := n.Source.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore TableSource.Source") + return annotate(err, "An error occurred while restore TableSource.Source") } if needParen { ctx.WritePlain(")") @@ -797,12 +798,12 @@ type SelectField struct { func (n *SelectField) Restore(ctx *format.RestoreCtx) error { if n.WildCard != nil { if err := n.WildCard.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectField.WildCard") + return annotate(err, "An error occurred while restore SelectField.WildCard") } } if n.Expr != nil { if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectField.Expr") + return annotate(err, "An error occurred while restore SelectField.Expr") } } if asName := n.AsName.String(); asName != "" { @@ -865,7 +866,7 @@ func (n *FieldList) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FieldList.Fields[%d]", i) + return annotatef(err, "An error occurred while restore FieldList.Fields[%d]", i) } } return nil @@ -898,7 +899,7 @@ type TableRefsClause struct { // Restore implements Node interface. func (n *TableRefsClause) Restore(ctx *format.RestoreCtx) error { if err := n.TableRefs.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore TableRefsClause.TableRefs") + return annotate(err, "An error occurred while restore TableRefsClause.TableRefs") } return nil } @@ -930,7 +931,7 @@ type ByItem struct { // Restore implements Node interface. func (n *ByItem) Restore(ctx *format.RestoreCtx) error { if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ByItem.Expr") + return annotate(err, "An error occurred while restore ByItem.Expr") } if n.Desc { ctx.WriteKeyWord(" DESC") @@ -968,7 +969,7 @@ func (n *GroupByClause) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore GroupByClause.Items[%d]", i) + return annotatef(err, "An error occurred while restore GroupByClause.Items[%d]", i) } } if n.Rollup { @@ -1004,7 +1005,7 @@ type HavingClause struct { func (n *HavingClause) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("HAVING ") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore HavingClause.Expr") + return annotate(err, "An error occurred while restore HavingClause.Expr") } return nil } @@ -1039,7 +1040,7 @@ func (n *OrderByClause) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := item.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore OrderByClause.Items[%d]", i) + return annotatef(err, "An error occurred while restore OrderByClause.Items[%d]", i) } } return nil @@ -1100,7 +1101,7 @@ func (s *TableSample) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain("(") if s.Expr != nil { if err := s.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore TableSample.Expr") + return annotate(err, "An error occurred while restore TableSample.Expr") } } switch s.SampleClauseUnit { @@ -1115,7 +1116,7 @@ func (s *TableSample) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(" REPEATABLE") ctx.WritePlain("(") if err := s.RepeatableSeed.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore TableSample.Expr") + return annotate(err, "An error occurred while restore TableSample.Expr") } ctx.WritePlain(")") } @@ -1369,7 +1370,7 @@ func (n *SelectStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") } if err := tableHint.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore SelectStmt.TableHints[%d]", i) + return annotatef(err, "An error occurred while restore SelectStmt.TableHints[%d]", i) } } ctx.WritePlain("*/ ") @@ -1392,7 +1393,7 @@ func (n *SelectStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(field.OriginalText()) } else { if err := field.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore SelectStmt.Fields[%d]", i) + return annotatef(err, "An error occurred while restore SelectStmt.Fields[%d]", i) } } } @@ -1404,7 +1405,7 @@ func (n *SelectStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(n.From.OriginalText()) } else { if err := n.From.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectStmt.From") + return annotate(err, "An error occurred while restore SelectStmt.From") } } } @@ -1416,21 +1417,21 @@ func (n *SelectStmt) Restore(ctx *format.RestoreCtx) error { if n.Where != nil { ctx.WriteKeyWord(" WHERE ") if err := n.Where.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectStmt.Where") + return annotate(err, "An error occurred while restore SelectStmt.Where") } } if n.GroupBy != nil { ctx.WritePlain(" ") if err := n.GroupBy.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectStmt.GroupBy") + return annotate(err, "An error occurred while restore SelectStmt.GroupBy") } } if n.Having != nil { ctx.WritePlain(" ") if err := n.Having.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectStmt.Having") + return annotate(err, "An error occurred while restore SelectStmt.Having") } } @@ -1441,18 +1442,18 @@ func (n *SelectStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := windowsSpec.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore SelectStmt.WindowSpec[%d]", i) + return annotatef(err, "An error occurred while restore SelectStmt.WindowSpec[%d]", i) } } } case SelectStmtKindTable: if err := n.From.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectStmt.From") + return annotate(err, "An error occurred while restore SelectStmt.From") } case SelectStmtKindValues: for i, v := range n.Lists { if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore SelectStmt.Lists[%d]", i) + return annotatef(err, "An error occurred while restore SelectStmt.Lists[%d]", i) } if i != len(n.Lists)-1 { ctx.WritePlain(", ") @@ -1463,14 +1464,14 @@ func (n *SelectStmt) Restore(ctx *format.RestoreCtx) error { if n.OrderBy != nil { ctx.WritePlain(" ") if err := n.OrderBy.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectStmt.OrderBy") + return annotate(err, "An error occurred while restore SelectStmt.OrderBy") } } if n.Limit != nil { ctx.WritePlain(" ") if err := n.Limit.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectStmt.Limit") + return annotate(err, "An error occurred while restore SelectStmt.Limit") } } @@ -1526,7 +1527,7 @@ func (n *SelectStmt) Restore(ctx *format.RestoreCtx) error { if n.SelectIntoOpt != nil { ctx.WritePlain(" ") if err := n.SelectIntoOpt.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectStmt.SelectIntoOpt") + return annotate(err, "An error occurred while restore SelectStmt.SelectIntoOpt") } } return nil @@ -1535,7 +1536,7 @@ func (n *SelectStmt) Restore(ctx *format.RestoreCtx) error { func restoreTables(ctx *format.RestoreCtx, ts []*TableName) error { for i, v := range ts { if err := v.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectStmt.LockInfo") + return annotate(err, "An error occurred while restore SelectStmt.LockInfo") } if i != len(ts)-1 { ctx.WritePlain(", ") @@ -1674,7 +1675,7 @@ func (n *SetOprSelectList) Restore(ctx *format.RestoreCtx) error { if n.With != nil { defer ctx.RestoreCTEFunc()() //nolint: all_revive if err := n.With.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SetOprSelectList.With") + return annotate(err, "An error occurred while restore SetOprSelectList.With") } } @@ -1685,7 +1686,7 @@ func (n *SetOprSelectList) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(" " + selectStmt.AfterSetOperator.String() + " ") } if err := selectStmt.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SetOprSelectList.SelectStmt") + return annotate(err, "An error occurred while restore SetOprSelectList.SelectStmt") } case *SetOprSelectList: if i != 0 { @@ -1703,14 +1704,14 @@ func (n *SetOprSelectList) Restore(ctx *format.RestoreCtx) error { if n.OrderBy != nil { ctx.WritePlain(" ") if err := n.OrderBy.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SetOprSelectList.OrderBy") + return annotate(err, "An error occurred while restore SetOprSelectList.OrderBy") } } if n.Limit != nil { ctx.WritePlain(" ") if err := n.Limit.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SetOprSelectList.Limit") + return annotate(err, "An error occurred while restore SetOprSelectList.Limit") } } return nil @@ -1804,7 +1805,7 @@ func (n *SetOprStmt) Restore(ctx *format.RestoreCtx) error { if n.With != nil { defer ctx.RestoreCTEFunc()() //nolint: all_revive if err := n.With.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SetOprStmt.With") + return annotate(err, "An error occurred while restore SetOprStmt.With") } } if n.IsInBraces { @@ -1815,20 +1816,20 @@ func (n *SetOprStmt) Restore(ctx *format.RestoreCtx) error { } if err := n.SelectList.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SetOprStmt.SelectList") + return annotate(err, "An error occurred while restore SetOprStmt.SelectList") } if n.OrderBy != nil { ctx.WritePlain(" ") if err := n.OrderBy.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SetOprStmt.OrderBy") + return annotate(err, "An error occurred while restore SetOprStmt.OrderBy") } } if n.Limit != nil { ctx.WritePlain(" ") if err := n.Limit.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SetOprStmt.Limit") + return annotate(err, "An error occurred while restore SetOprStmt.Limit") } } return nil @@ -1883,11 +1884,11 @@ type Assignment struct { // Restore implements Node interface. func (n *Assignment) Restore(ctx *format.RestoreCtx) error { if err := n.Column.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore Assignment.Column") + return annotate(err, "An error occurred while restore Assignment.Column") } ctx.WritePlain("=") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore Assignment.Expr") + return annotate(err, "An error occurred while restore Assignment.Expr") } return nil } @@ -1921,12 +1922,12 @@ type ColumnNameOrUserVar struct { func (n *ColumnNameOrUserVar) Restore(ctx *format.RestoreCtx) error { if n.ColumnName != nil { if err := n.ColumnName.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ColumnNameOrUserVar.ColumnName") + return annotate(err, "An error occurred while restore ColumnNameOrUserVar.ColumnName") } } if n.UserVar != nil { if err := n.UserVar.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ColumnNameOrUserVar.UserVar") + return annotate(err, "An error occurred while restore ColumnNameOrUserVar.UserVar") } } return nil @@ -2014,7 +2015,7 @@ func (n *LoadDataStmt) Restore(ctx *format.RestoreCtx) error { } ctx.WriteKeyWord(" INTO TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore LoadDataStmt.Table") + return annotate(err, "An error occurred while restore LoadDataStmt.Table") } if n.Charset != nil { ctx.WriteKeyWord(" CHARACTER SET ") @@ -2038,7 +2039,7 @@ func (n *LoadDataStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := c.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore LoadDataStmt.ColumnsAndUserVars") + return annotate(err, "An error occurred while restore LoadDataStmt.ColumnsAndUserVars") } } ctx.WritePlain(")") @@ -2052,7 +2053,7 @@ func (n *LoadDataStmt) Restore(ctx *format.RestoreCtx) error { } ctx.WritePlain(" ") if err := assign.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore LoadDataStmt.ColumnAssignments") + return annotate(err, "An error occurred while restore LoadDataStmt.ColumnAssignments") } } } @@ -2065,7 +2066,7 @@ func (n *LoadDataStmt) Restore(ctx *format.RestoreCtx) error { } ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore LoadDataStmt.Options") + return annotatef(err, "An error occurred while restore LoadDataStmt.Options") } } } @@ -2124,7 +2125,7 @@ func (l *LoadDataOpt) Restore(ctx *format.RestoreCtx) error { } else { ctx.WritePlain(l.Name + "=") if err := l.Value.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore LoadDataOpt") + return annotatef(err, "An error occurred while restore LoadDataOpt") } } return nil @@ -2229,7 +2230,7 @@ var _ SensitiveStmtNode = &ImportIntoStmt{} func (n *ImportIntoStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("IMPORT INTO ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ImportIntoStmt.Table") + return annotate(err, "An error occurred while restore ImportIntoStmt.Table") } if len(n.ColumnsAndUserVars) != 0 { ctx.WritePlain(" (") @@ -2238,7 +2239,7 @@ func (n *ImportIntoStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := c.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ImportIntoStmt.ColumnsAndUserVars") + return annotate(err, "An error occurred while restore ImportIntoStmt.ColumnsAndUserVars") } } ctx.WritePlain(")") @@ -2252,14 +2253,14 @@ func (n *ImportIntoStmt) Restore(ctx *format.RestoreCtx) error { } ctx.WritePlain(" ") if err := assign.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ImportIntoStmt.ColumnAssignments") + return annotate(err, "An error occurred while restore ImportIntoStmt.ColumnAssignments") } } } ctx.WriteKeyWord(" FROM ") if n.Select != nil { if err := n.Select.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ImportIntoStmt.Select") + return annotate(err, "An error occurred while restore ImportIntoStmt.Select") } } else { ctx.WriteString(n.Path) @@ -2277,7 +2278,7 @@ func (n *ImportIntoStmt) Restore(ctx *format.RestoreCtx) error { } ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore ImportIntoStmt.Options") + return annotatef(err, "An error occurred while restore ImportIntoStmt.Options") } } } @@ -2357,7 +2358,7 @@ func (n *CallStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("CALL ") if err := n.Procedure.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CallStmt.Procedure") + return annotate(err, "An error occurred while restore CallStmt.Procedure") } return nil @@ -2418,14 +2419,14 @@ func (n *InsertStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") } if err := tableHint.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore InsertStmt.TableHints[%d]", i) + return annotatef(err, "An error occurred while restore InsertStmt.TableHints[%d]", i) } } ctx.WritePlain("*/ ") } if err := n.Priority.Restore(ctx); err != nil { - return errors.Trace(err) + return err } if n.Priority != mysql.NoPriority { ctx.WritePlain(" ") @@ -2435,7 +2436,7 @@ func (n *InsertStmt) Restore(ctx *format.RestoreCtx) error { } ctx.WriteKeyWord("INTO ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore InsertStmt.Table") + return annotate(err, "An error occurred while restore InsertStmt.Table") } if len(n.PartitionNames) != 0 { ctx.WriteKeyWord(" PARTITION") @@ -2450,10 +2451,10 @@ func (n *InsertStmt) Restore(ctx *format.RestoreCtx) error { } if n.Setlist { if len(n.Lists) != 1 { - return errors.Errorf("Expect len(InsertStmt.Lists)[%d] == 1 for SET x=y", len(n.Lists)) + return fmt.Errorf("Expect len(InsertStmt.Lists)[%d] == 1 for SET x=y", len(n.Lists)) } if len(n.Lists[0]) != len(n.Columns) { - return errors.Errorf("Expect len(InsertStmt.Columns)[%d] == len(InsertStmt.Lists[0])[%d] for SET x=y", len(n.Columns), len(n.Lists[0])) + return fmt.Errorf("Expect len(InsertStmt.Columns)[%d] == len(InsertStmt.Lists[0])[%d] for SET x=y", len(n.Columns), len(n.Lists[0])) } ctx.WriteKeyWord(" SET ") for i, v := range n.Lists[0] { @@ -2465,7 +2466,7 @@ func (n *InsertStmt) Restore(ctx *format.RestoreCtx) error { Expr: v, } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore InsertStmt.Set (Columns = Expr)[%d]", i) + return annotatef(err, "An error occurred while restore InsertStmt.Set (Columns = Expr)[%d]", i) } } } else { @@ -2479,7 +2480,7 @@ func (n *InsertStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(v.OriginalText()) } else { if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore InsertStmt.Columns[%d]", i) + return annotatef(err, "An error occurred while restore InsertStmt.Columns[%d]", i) } } } @@ -2497,7 +2498,7 @@ func (n *InsertStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore InsertStmt.Lists[%d][%d]", i, j) + return annotatef(err, "An error occurred while restore InsertStmt.Lists[%d][%d]", i, j) } } ctx.WritePlain(")") @@ -2509,10 +2510,10 @@ func (n *InsertStmt) Restore(ctx *format.RestoreCtx) error { switch v := n.Select.(type) { case *SelectStmt, *SetOprStmt: if err := v.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore InsertStmt.Select") + return annotate(err, "An error occurred while restore InsertStmt.Select") } default: - return errors.Errorf("Incorrect type for InsertStmt.Select: %T", v) + return fmt.Errorf("Incorrect type for InsertStmt.Select: %T", v) } } if n.OnDuplicate != nil { @@ -2522,7 +2523,7 @@ func (n *InsertStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore InsertStmt.OnDuplicate[%d]", i) + return annotatef(err, "An error occurred while restore InsertStmt.OnDuplicate[%d]", i) } } } @@ -2655,14 +2656,14 @@ func (n *DeleteStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") } if err := tableHint.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore UpdateStmt.TableHints[%d]", i) + return annotatef(err, "An error occurred while restore UpdateStmt.TableHints[%d]", i) } } ctx.WritePlain("*/ ") } if err := n.Priority.Restore(ctx); err != nil { - return errors.Trace(err) + return err } if n.Priority != mysql.NoPriority { ctx.WritePlain(" ") @@ -2677,50 +2678,50 @@ func (n *DeleteStmt) Restore(ctx *format.RestoreCtx) error { if n.IsMultiTable { // Multiple-Table Syntax if n.BeforeFrom { if err := n.Tables.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore DeleteStmt.Tables") + return annotate(err, "An error occurred while restore DeleteStmt.Tables") } ctx.WriteKeyWord(" FROM ") if err := n.TableRefs.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore DeleteStmt.TableRefs") + return annotate(err, "An error occurred while restore DeleteStmt.TableRefs") } } else { ctx.WriteKeyWord("FROM ") if err := n.Tables.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore DeleteStmt.Tables") + return annotate(err, "An error occurred while restore DeleteStmt.Tables") } ctx.WriteKeyWord(" USING ") if err := n.TableRefs.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore DeleteStmt.TableRefs") + return annotate(err, "An error occurred while restore DeleteStmt.TableRefs") } } } else { // Single-Table Syntax ctx.WriteKeyWord("FROM ") if err := n.TableRefs.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore DeleteStmt.TableRefs") + return annotate(err, "An error occurred while restore DeleteStmt.TableRefs") } } if n.Where != nil { ctx.WriteKeyWord(" WHERE ") if err := n.Where.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore DeleteStmt.Where") + return annotate(err, "An error occurred while restore DeleteStmt.Where") } } if n.Order != nil { ctx.WritePlain(" ") if err := n.Order.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore DeleteStmt.Order") + return annotate(err, "An error occurred while restore DeleteStmt.Order") } } if n.Limit != nil { ctx.WritePlain(" ") if err := n.Limit.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore DeleteStmt.Limit") + return annotate(err, "An error occurred while restore DeleteStmt.Limit") } } @@ -2828,7 +2829,7 @@ func (n *NonTransactionalDMLStmt) Restore(ctx *format.RestoreCtx) error { if n.ShardColumn != nil { ctx.WriteKeyWord("ON ") if err := n.ShardColumn.Restore(ctx); err != nil { - return errors.Trace(err) + return err } ctx.WritePlain(" ") } @@ -2841,7 +2842,7 @@ func (n *NonTransactionalDMLStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("DRY RUN QUERY ") } if err := n.DMLStmt.Restore(ctx); err != nil { - return errors.Trace(err) + return err } return nil } @@ -2907,14 +2908,14 @@ func (n *UpdateStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") } if err := tableHint.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore UpdateStmt.TableHints[%d]", i) + return annotatef(err, "An error occurred while restore UpdateStmt.TableHints[%d]", i) } } ctx.WritePlain("*/ ") } if err := n.Priority.Restore(ctx); err != nil { - return errors.Trace(err) + return err } if n.Priority != mysql.NoPriority { ctx.WritePlain(" ") @@ -2924,7 +2925,7 @@ func (n *UpdateStmt) Restore(ctx *format.RestoreCtx) error { } if err := n.TableRefs.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occur while restore UpdateStmt.TableRefs") + return annotate(err, "An error occur while restore UpdateStmt.TableRefs") } ctx.WriteKeyWord(" SET ") @@ -2934,34 +2935,34 @@ func (n *UpdateStmt) Restore(ctx *format.RestoreCtx) error { } if err := assignment.Column.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occur while restore UpdateStmt.List[%d].Column", i) + return annotatef(err, "An error occur while restore UpdateStmt.List[%d].Column", i) } ctx.WritePlain("=") if err := assignment.Expr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occur while restore UpdateStmt.List[%d].Expr", i) + return annotatef(err, "An error occur while restore UpdateStmt.List[%d].Expr", i) } } if n.Where != nil { ctx.WriteKeyWord(" WHERE ") if err := n.Where.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occur while restore UpdateStmt.Where") + return annotate(err, "An error occur while restore UpdateStmt.Where") } } if n.Order != nil { ctx.WritePlain(" ") if err := n.Order.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occur while restore UpdateStmt.Order") + return annotate(err, "An error occur while restore UpdateStmt.Order") } } if n.Limit != nil { ctx.WritePlain(" ") if err := n.Limit.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occur while restore UpdateStmt.Limit") + return annotate(err, "An error occur while restore UpdateStmt.Limit") } } @@ -3046,12 +3047,12 @@ func (n *Limit) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("LIMIT ") if n.Offset != nil { if err := n.Offset.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore Limit.Offset") + return annotate(err, "An error occurred while restore Limit.Offset") } ctx.WritePlain(",") } if err := n.Count.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore Limit.Count") + return annotate(err, "An error occurred while restore Limit.Count") } return nil } @@ -3236,12 +3237,12 @@ func (n *ShowStmt) Restore(ctx *format.RestoreCtx) error { if n.Pattern != nil && n.Pattern.Pattern != nil { ctx.WriteKeyWord(" LIKE ") if err := n.Pattern.Pattern.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Pattern") + return annotate(err, "An error occurred while restore ShowStmt.Pattern") } } else if n.Where != nil { ctx.WriteKeyWord(" WHERE ") if err := n.Where.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Where") + return annotate(err, "An error occurred while restore ShowStmt.Where") } } return nil @@ -3254,17 +3255,17 @@ func (n *ShowStmt) Restore(ctx *format.RestoreCtx) error { case ShowCreateTable: ctx.WriteKeyWord("CREATE TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Table") + return annotate(err, "An error occurred while restore ShowStmt.Table") } case ShowCreateProcedure: ctx.WriteKeyWord("CREATE PROCEDURE ") if err := n.Procedure.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Procedure") + return annotate(err, "An error occurred while restore ShowStmt.Procedure") } case ShowCreateView: ctx.WriteKeyWord("CREATE VIEW ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.VIEW") + return annotate(err, "An error occurred while restore ShowStmt.VIEW") } case ShowCreateDatabase: ctx.WriteKeyWord("CREATE DATABASE ") @@ -3275,7 +3276,7 @@ func (n *ShowStmt) Restore(ctx *format.RestoreCtx) error { case ShowCreateSequence: ctx.WriteKeyWord("CREATE SEQUENCE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.SEQUENCE") + return annotate(err, "An error occurred while restore ShowStmt.SEQUENCE") } case ShowCreatePlacementPolicy: ctx.WriteKeyWord("CREATE PLACEMENT POLICY ") @@ -3286,17 +3287,17 @@ func (n *ShowStmt) Restore(ctx *format.RestoreCtx) error { case ShowCreateUser: ctx.WriteKeyWord("CREATE USER ") if err := n.User.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.User") + return annotate(err, "An error occurred while restore ShowStmt.User") } case ShowMaskingPolicies: ctx.WriteKeyWord("MASKING POLICIES FOR ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Table") + return annotate(err, "An error occurred while restore ShowStmt.Table") } if n.Where != nil { ctx.WriteKeyWord(" WHERE ") if err := n.Where.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Where") + return annotate(err, "An error occurred while restore ShowStmt.Where") } } case ShowGrants: @@ -3304,14 +3305,14 @@ func (n *ShowStmt) Restore(ctx *format.RestoreCtx) error { if n.User != nil { ctx.WriteKeyWord(" FOR ") if err := n.User.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.User") + return annotate(err, "An error occurred while restore ShowStmt.User") } } if n.Roles != nil { ctx.WriteKeyWord(" USING ") for i, r := range n.Roles { if err := r.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.User") + return annotate(err, "An error occurred while restore ShowStmt.User") } if i != len(n.Roles)-1 { ctx.WritePlain(", ") @@ -3407,7 +3408,7 @@ func (n *ShowStmt) Restore(ctx *format.RestoreCtx) error { if n.ShowProfileLimit != nil { ctx.WritePlain(" ") if err := n.ShowProfileLimit.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.WritePlain") + return annotate(err, "An error occurred while restore ShowStmt.WritePlain") } } @@ -3421,12 +3422,12 @@ func (n *ShowStmt) Restore(ctx *format.RestoreCtx) error { case ShowPlacementForTable: ctx.WriteKeyWord("PLACEMENT FOR TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Table") + return annotate(err, "An error occurred while restore ShowStmt.Table") } case ShowPlacementForPartition: ctx.WriteKeyWord("PLACEMENT FOR TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Table") + return annotate(err, "An error occurred while restore ShowStmt.Table") } ctx.WriteKeyWord(" PARTITION ") ctx.WriteName(n.Partition.String()) @@ -3483,7 +3484,7 @@ func (n *ShowStmt) Restore(ctx *format.RestoreCtx) error { // FROM or IN ctx.WriteKeyWord("INDEX IN ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Table") + return annotate(err, "An error occurred while restore ShowStmt.Table") } // TODO: remember to check this case case ShowColumns: // equivalent to SHOW FIELDS if n.Extended { @@ -3495,7 +3496,7 @@ func (n *ShowStmt) Restore(ctx *format.RestoreCtx) error { // FROM or IN ctx.WriteKeyWord(" IN ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Table") + return annotate(err, "An error occurred while restore ShowStmt.Table") } } restoreShowDatabaseNameOpt() @@ -3537,7 +3538,7 @@ func (n *ShowStmt) Restore(ctx *format.RestoreCtx) error { case ShowDistributions: ctx.WriteKeyWord("TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Table") + return annotate(err, "An error occurred while restore ShowStmt.Table") } ctx.WriteKeyWord(" DISTRIBUTIONS") if err := restoreShowLikeOrWhereOpt(); err != nil { @@ -3547,7 +3548,7 @@ func (n *ShowStmt) Restore(ctx *format.RestoreCtx) error { case ShowRegions: ctx.WriteKeyWord("TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Table") + return annotate(err, "An error occurred while restore ShowStmt.Table") } if len(n.IndexName.L) > 0 { ctx.WriteKeyWord(" INDEX ") @@ -3561,7 +3562,7 @@ func (n *ShowStmt) Restore(ctx *format.RestoreCtx) error { case ShowTableNextRowId: ctx.WriteKeyWord("TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Table") + return annotate(err, "An error occurred while restore ShowStmt.Table") } ctx.WriteKeyWord(" NEXT_ROW_ID") return nil @@ -3701,21 +3702,21 @@ func (n *WindowSpec) Restore(ctx *format.RestoreCtx) error { if n.PartitionBy != nil { ctx.WritePlain(sep) if err := n.PartitionBy.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore WindowSpec.PartitionBy") + return annotate(err, "An error occurred while restore WindowSpec.PartitionBy") } sep = " " } if n.OrderBy != nil { ctx.WritePlain(sep) if err := n.OrderBy.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore WindowSpec.OrderBy") + return annotate(err, "An error occurred while restore WindowSpec.OrderBy") } sep = " " } if n.Frame != nil { ctx.WritePlain(sep) if err := n.Frame.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore WindowSpec.Frame") + return annotate(err, "An error occurred while restore WindowSpec.Frame") } } ctx.WritePlain(")") @@ -3782,12 +3783,12 @@ func (n *SelectIntoOption) Restore(ctx *format.RestoreCtx) error { ctx.WriteString(n.FileName) if n.FieldsInfo != nil { if err := n.FieldsInfo.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectInto.FieldsInfo") + return annotate(err, "An error occurred while restore SelectInto.FieldsInfo") } } if n.LinesInfo != nil { if err := n.LinesInfo.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SelectInto.LinesInfo") + return annotate(err, "An error occurred while restore SelectInto.LinesInfo") } } return nil @@ -3817,7 +3818,7 @@ func (n *PartitionByClause) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore PartitionByClause.Items[%d]", i) + return annotatef(err, "An error occurred while restore PartitionByClause.Items[%d]", i) } } return nil @@ -3871,11 +3872,11 @@ func (n *FrameClause) Restore(ctx *format.RestoreCtx) error { } ctx.WriteKeyWord(" BETWEEN ") if err := n.Extent.Start.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore FrameClause.Extent.Start") + return annotate(err, "An error occurred while restore FrameClause.Extent.Start") } ctx.WriteKeyWord(" AND ") if err := n.Extent.End.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore FrameClause.Extent.End") + return annotate(err, "An error occurred while restore FrameClause.Extent.End") } return nil @@ -3943,7 +3944,7 @@ func (n *FrameBound) Restore(ctx *format.RestoreCtx) error { } if n.Expr != nil { if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore FrameBound.Expr") + return annotate(err, "An error occurred while restore FrameBound.Expr") } } if n.Unit != TimeUnitInvalid { @@ -3991,7 +3992,7 @@ func (n *DistributeTableStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SplitIndexRegionStmt.Table") + return annotate(err, "An error occurred while restore SplitIndexRegionStmt.Table") } if len(n.PartitionNames) > 0 { ctx.WriteKeyWord(" PARTITION") @@ -4086,7 +4087,7 @@ func (n *SplitRegionStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("TABLE ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SplitIndexRegionStmt.Table") + return annotate(err, "An error occurred while restore SplitIndexRegionStmt.Table") } if len(n.PartitionNames) > 0 { ctx.WriteKeyWord(" PARTITION") @@ -4141,7 +4142,7 @@ func (n *SplitOption) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore SplitOption Lower") + return annotatef(err, "An error occurred while restore SplitOption Lower") } } ctx.WritePlain(")") @@ -4153,7 +4154,7 @@ func (n *SplitOption) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore SplitOption Upper") + return annotatef(err, "An error occurred while restore SplitOption Upper") } } ctx.WritePlain(")") @@ -4172,7 +4173,7 @@ func (n *SplitOption) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore SplitOption.ValueLists[%d][%d]", i, j) + return annotatef(err, "An error occurred while restore SplitOption.ValueLists[%d][%d]", i, j) } } ctx.WritePlain(")") @@ -4277,7 +4278,7 @@ type AsOfClause struct { func (n *AsOfClause) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("AS OF TIMESTAMP ") if err := n.TsExpr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AsOfClause.Expr") + return annotate(err, "An error occurred while restore AsOfClause.Expr") } return nil } diff --git a/ast/expressions.go b/ast/expressions.go index 6371ee9..219ab58 100644 --- a/ast/expressions.go +++ b/ast/expressions.go @@ -14,13 +14,13 @@ package ast import ( + "errors" "fmt" "io" "reflect" "regexp" "strings" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/format" "github.com/sqlc-dev/marino/opcode" ) @@ -89,7 +89,7 @@ func (n *BetweenExpr) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain("(") } if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore BetweenExpr.Expr") + return annotate(err, "An error occurred while restore BetweenExpr.Expr") } if n.Not { ctx.WriteKeyWord(" NOT BETWEEN ") @@ -97,11 +97,11 @@ func (n *BetweenExpr) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(" BETWEEN ") } if err := n.Left.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore BetweenExpr.Left") + return annotate(err, "An error occurred while restore BetweenExpr.Left") } ctx.WriteKeyWord(" AND ") if err := n.Right.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore BetweenExpr.Right ") + return annotate(err, "An error occurred while restore BetweenExpr.Right ") } if ctx.Flags.HasRestoreBracketAroundBetweenExpr() { ctx.WritePlain(")") @@ -184,13 +184,13 @@ func (n *BinaryOperationExpr) Restore(ctx *format.RestoreCtx) error { ctx.Flags |= format.RestoreBracketAroundBetweenExpr } if err := n.L.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred when restore BinaryOperationExpr.L") + return annotate(err, "An error occurred when restore BinaryOperationExpr.L") } if err := restoreBinaryOpWithSpacesAround(ctx, n.Op); err != nil { - return errors.Annotate(err, "An error occurred when restore BinaryOperationExpr.Op") + return annotate(err, "An error occurred when restore BinaryOperationExpr.Op") } if err := n.R.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred when restore BinaryOperationExpr.R") + return annotate(err, "An error occurred when restore BinaryOperationExpr.R") } if ctx.Flags.HasRestoreBracketAroundBinaryOperation() { ctx.WritePlain(")") @@ -244,11 +244,11 @@ type WhenClause struct { func (n *WhenClause) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("WHEN ") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore WhenClauses.Expr") + return annotate(err, "An error occurred while restore WhenClauses.Expr") } ctx.WriteKeyWord(" THEN ") if err := n.Result.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore WhenClauses.Result") + return annotate(err, "An error occurred while restore WhenClauses.Result") } return nil } @@ -292,19 +292,19 @@ func (n *CaseExpr) Restore(ctx *format.RestoreCtx) error { if n.Value != nil { ctx.WritePlain(" ") if err := n.Value.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CaseExpr.Value") + return annotate(err, "An error occurred while restore CaseExpr.Value") } } for _, clause := range n.WhenClauses { ctx.WritePlain(" ") if err := clause.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CaseExpr.WhenClauses") + return annotate(err, "An error occurred while restore CaseExpr.WhenClauses") } } if n.ElseClause != nil { ctx.WriteKeyWord(" ELSE ") if err := n.ElseClause.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CaseExpr.ElseClause") + return annotate(err, "An error occurred while restore CaseExpr.ElseClause") } } ctx.WriteKeyWord(" END") @@ -383,7 +383,7 @@ func (*SubqueryExpr) resultSet() {} func (n *SubqueryExpr) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain("(") if err := n.Query.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SubqueryExpr.Query") + return annotate(err, "An error occurred while restore SubqueryExpr.Query") } ctx.WritePlain(")") return nil @@ -428,10 +428,10 @@ type CompareSubqueryExpr struct { // Restore implements Node interface. func (n *CompareSubqueryExpr) Restore(ctx *format.RestoreCtx) error { if err := n.L.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CompareSubqueryExpr.L") + return annotate(err, "An error occurred while restore CompareSubqueryExpr.L") } if err := restoreBinaryOpWithSpacesAround(ctx, n.Op); err != nil { - return errors.Annotate(err, "An error occurred while restore CompareSubqueryExpr.Op") + return annotate(err, "An error occurred while restore CompareSubqueryExpr.Op") } if n.All { ctx.WriteKeyWord("ALL ") @@ -439,7 +439,7 @@ func (n *CompareSubqueryExpr) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("ANY ") } if err := n.R.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CompareSubqueryExpr.R") + return annotate(err, "An error occurred while restore CompareSubqueryExpr.R") } return nil } @@ -480,7 +480,7 @@ type TableNameExpr struct { // Restore implements Node interface. func (n *TableNameExpr) Restore(ctx *format.RestoreCtx) error { if err := n.Name.Restore(ctx); err != nil { - return errors.Trace(err) + return err } return nil } @@ -590,7 +590,7 @@ type ColumnNameExpr struct { // Restore implements Node interface. func (n *ColumnNameExpr) Restore(ctx *format.RestoreCtx) error { if err := n.Name.Restore(ctx); err != nil { - return errors.Trace(err) + return err } return nil } @@ -629,7 +629,7 @@ func (n *DefaultExpr) Restore(ctx *format.RestoreCtx) error { if n.Name != nil { ctx.WritePlain("(") if err := n.Name.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore DefaultExpr.Name") + return annotate(err, "An error occurred while restore DefaultExpr.Name") } ctx.WritePlain(")") } @@ -672,7 +672,7 @@ func (n *ExistsSubqueryExpr) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("EXISTS ") } if err := n.Sel.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ExistsSubqueryExpr.Sel") + return annotate(err, "An error occurred while restore ExistsSubqueryExpr.Sel") } return nil } @@ -713,7 +713,7 @@ type PatternInExpr struct { // Restore implements Node interface. func (n *PatternInExpr) Restore(ctx *format.RestoreCtx) error { if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PatternInExpr.Expr") + return annotate(err, "An error occurred while restore PatternInExpr.Expr") } if n.Not { ctx.WriteKeyWord(" NOT IN ") @@ -722,7 +722,7 @@ func (n *PatternInExpr) Restore(ctx *format.RestoreCtx) error { } if n.Sel != nil { if err := n.Sel.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PatternInExpr.Sel") + return annotate(err, "An error occurred while restore PatternInExpr.Sel") } } else { ctx.WritePlain("(") @@ -731,7 +731,7 @@ func (n *PatternInExpr) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := expr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore PatternInExpr.List[%d]", i) + return annotatef(err, "An error occurred while restore PatternInExpr.List[%d]", i) } } ctx.WritePlain(")") @@ -797,7 +797,7 @@ type IsNullExpr struct { // Restore implements Node interface. func (n *IsNullExpr) Restore(ctx *format.RestoreCtx) error { if err := n.Expr.Restore(ctx); err != nil { - return errors.Trace(err) + return err } if n.Not { ctx.WriteKeyWord(" IS NOT NULL") @@ -846,7 +846,7 @@ type IsTruthExpr struct { // Restore implements Node interface. func (n *IsTruthExpr) Restore(ctx *format.RestoreCtx) error { if err := n.Expr.Restore(ctx); err != nil { - return errors.Trace(err) + return err } if n.Not { ctx.WriteKeyWord(" IS NOT") @@ -914,7 +914,7 @@ type PatternLikeOrIlikeExpr struct { // Restore implements Node interface. func (n *PatternLikeOrIlikeExpr) Restore(ctx *format.RestoreCtx) error { if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PatternLikeOrIlikeExpr.Expr") + return annotate(err, "An error occurred while restore PatternLikeOrIlikeExpr.Expr") } if n.IsLike { @@ -932,7 +932,7 @@ func (n *PatternLikeOrIlikeExpr) Restore(ctx *format.RestoreCtx) error { } if err := n.Pattern.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PatternLikeOrIlikeExpr.Pattern") + return annotate(err, "An error occurred while restore PatternLikeOrIlikeExpr.Pattern") } if n.EscapeExplicit && n.Escape != '\\' { @@ -1013,7 +1013,7 @@ type ParenthesesExpr struct { func (n *ParenthesesExpr) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain("(") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred when restore ParenthesesExpr.Expr") + return annotate(err, "An error occurred when restore ParenthesesExpr.Expr") } ctx.WritePlain(")") return nil @@ -1101,7 +1101,7 @@ type PatternRegexpExpr struct { // Restore implements Node interface. func (n *PatternRegexpExpr) Restore(ctx *format.RestoreCtx) error { if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PatternRegexpExpr.Expr") + return annotate(err, "An error occurred while restore PatternRegexpExpr.Expr") } if n.Not { @@ -1111,7 +1111,7 @@ func (n *PatternRegexpExpr) Restore(ctx *format.RestoreCtx) error { } if err := n.Pattern.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PatternRegexpExpr.Pattern") + return annotate(err, "An error occurred while restore PatternRegexpExpr.Pattern") } return nil @@ -1165,7 +1165,7 @@ func (n *RowExpr) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred when restore RowExpr.Values[%v]", i) + return annotatef(err, "An error occurred when restore RowExpr.Values[%v]", i) } } ctx.WritePlain(")") @@ -1206,10 +1206,10 @@ type UnaryOperationExpr struct { // Restore implements Node interface. func (n *UnaryOperationExpr) Restore(ctx *format.RestoreCtx) error { if err := n.Op.Restore(ctx); err != nil { - return errors.Trace(err) + return err } if err := n.V.Restore(ctx); err != nil { - return errors.Trace(err) + return err } return nil } @@ -1247,7 +1247,7 @@ func (n *ValuesExpr) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("VALUES") ctx.WritePlain("(") if err := n.Column.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ValuesExpr.Column") + return annotate(err, "An error occurred while restore ValuesExpr.Column") } ctx.WritePlain(")") @@ -1315,7 +1315,7 @@ func (n *VariableExpr) Restore(ctx *format.RestoreCtx) error { if n.Value != nil { ctx.WritePlain(":=") if err := n.Value.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore VariableExpr.Value") + return annotate(err, "An error occurred while restore VariableExpr.Value") } } @@ -1390,14 +1390,14 @@ func (n *MatchAgainst) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore MatchAgainst.ColumnNames[%d]", i) + return annotatef(err, "An error occurred while restore MatchAgainst.ColumnNames[%d]", i) } } ctx.WritePlain(") ") ctx.WriteKeyWord("AGAINST") ctx.WritePlain(" (") if err := n.Against.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore MatchAgainst.Against") + return annotate(err, "An error occurred while restore MatchAgainst.Against") } if n.Modifier.IsBooleanMode() { ctx.WritePlain(" IN BOOLEAN MODE") @@ -1463,7 +1463,7 @@ type SetCollationExpr struct { // Restore implements Node interface. func (n *SetCollationExpr) Restore(ctx *format.RestoreCtx) error { if err := n.Expr.Restore(ctx); err != nil { - return errors.Trace(err) + return err } ctx.WriteKeyWord(" COLLATE ") ctx.WritePlain(n.Collate) diff --git a/ast/functions.go b/ast/functions.go index e945235..b5d1696 100644 --- a/ast/functions.go +++ b/ast/functions.go @@ -19,7 +19,6 @@ import ( "strings" "time" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/format" "github.com/sqlc-dev/marino/types" ) @@ -426,53 +425,53 @@ func (n *FuncCallExpr) Restore(ctx *format.RestoreCtx) error { switch n.FnName.L { case "convert": if err := n.Args[0].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCastExpr.Expr") + return annotatef(err, "An error occurred while restore FuncCastExpr.Expr") } ctx.WriteKeyWord(" USING ") if err := n.Args[1].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCastExpr.Expr") + return annotatef(err, "An error occurred while restore FuncCastExpr.Expr") } case "adddate", "subdate", "date_add", "date_sub": if err := n.Args[0].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr.Args[0]") + return annotatef(err, "An error occurred while restore FuncCallExpr.Args[0]") } ctx.WritePlain(", ") ctx.WriteKeyWord("INTERVAL ") if err := n.Args[1].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr.Args[1]") + return annotatef(err, "An error occurred while restore FuncCallExpr.Args[1]") } ctx.WritePlain(" ") if err := n.Args[2].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr.Args[2]") + return annotatef(err, "An error occurred while restore FuncCallExpr.Args[2]") } case "extract": if err := n.Args[0].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr.Args[0]") + return annotatef(err, "An error occurred while restore FuncCallExpr.Args[0]") } ctx.WriteKeyWord(" FROM ") if err := n.Args[1].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr.Args[1]") + return annotatef(err, "An error occurred while restore FuncCallExpr.Args[1]") } case "position": if err := n.Args[0].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr") + return annotatef(err, "An error occurred while restore FuncCallExpr") } ctx.WriteKeyWord(" IN ") if err := n.Args[1].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr") + return annotatef(err, "An error occurred while restore FuncCallExpr") } case "trim": switch len(n.Args) { case 3: if err := n.Args[2].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr.Args[2]") + return annotatef(err, "An error occurred while restore FuncCallExpr.Args[2]") } ctx.WritePlain(" ") fallthrough case 2: if expr, isValue := n.Args[1].(ValueExpr); !isValue || expr.GetValue() != nil { if err := n.Args[1].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr.Args[1]") + return annotatef(err, "An error occurred while restore FuncCallExpr.Args[1]") } ctx.WritePlain(" ") } @@ -480,19 +479,19 @@ func (n *FuncCallExpr) Restore(ctx *format.RestoreCtx) error { fallthrough case 1: if err := n.Args[0].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr.Args[0]") + return annotatef(err, "An error occurred while restore FuncCallExpr.Args[0]") } } case WeightString: if err := n.Args[0].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr.(WEIGHT_STRING).Args[0]") + return annotatef(err, "An error occurred while restore FuncCallExpr.(WEIGHT_STRING).Args[0]") } if len(n.Args) == 3 { ctx.WriteKeyWord(" AS ") ctx.WriteKeyWord(n.Args[1].(ValueExpr).GetValue().(string)) ctx.WritePlain("(") if err := n.Args[2].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr.(WEIGHT_STRING).Args[2]") + return annotatef(err, "An error occurred while restore FuncCallExpr.(WEIGHT_STRING).Args[2]") } ctx.WritePlain(")") } @@ -502,7 +501,7 @@ func (n *FuncCallExpr) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := argv.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCallExpr.Args %d", i) + return annotatef(err, "An error occurred while restore FuncCallExpr.Args %d", i) } } } @@ -523,24 +522,24 @@ func (n *FuncCallExpr) customRestore(ctx *format.RestoreCtx) (bool, error) { if specialLiteral != "" { ctx.WritePlain(specialLiteral) if err := n.Args[0].Restore(ctx); err != nil { - return true, errors.Annotatef(err, "An error occurred while restore FuncCallExpr.Expr") + return true, annotatef(err, "An error occurred while restore FuncCallExpr.Expr") } return true, nil } if n.FnName.L == JSONMemberOf { if len(n.Args) == 2 { if err := n.Args[0].Restore(ctx); err != nil { - return true, errors.Annotatef(err, "An error occurred while restore FuncCallExpr.(MEMBER OF).Args[0]") + return true, annotatef(err, "An error occurred while restore FuncCallExpr.(MEMBER OF).Args[0]") } ctx.WriteKeyWord(" MEMBER OF ") ctx.WritePlain("(") if err := n.Args[1].Restore(ctx); err != nil { - return true, errors.Annotatef(err, "An error occurred while restore FuncCallExpr.(MEMBER OF).Args[1]") + return true, annotatef(err, "An error occurred while restore FuncCallExpr.(MEMBER OF).Args[1]") } ctx.WritePlain(")") return true, nil } - return true, errors.WithStack(errors.Errorf("Incorrect parameter count in the call to native function 'json_memberof'")) + return true, fmt.Errorf("Incorrect parameter count in the call to native function 'json_memberof'") } return false, nil } @@ -633,7 +632,7 @@ func (n *JSONSumCrc32Expr) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("JSON_SUM_CRC32") ctx.WritePlain("(") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore JSONSumCrc32Expr.Expr") + return annotatef(err, "An error occurred while restore JSONSumCrc32Expr.Expr") } ctx.WriteKeyWord(" AS ") n.Tp.RestoreAsCastType(ctx, n.ExplicitCharSet) @@ -686,7 +685,7 @@ func (n *FuncCastExpr) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("CAST") ctx.WritePlain("(") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCastExpr.Expr") + return annotatef(err, "An error occurred while restore FuncCastExpr.Expr") } ctx.WriteKeyWord(" AS ") n.Tp.RestoreAsCastType(ctx, n.ExplicitCharSet) @@ -695,7 +694,7 @@ func (n *FuncCastExpr) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("CONVERT") ctx.WritePlain("(") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCastExpr.Expr") + return annotatef(err, "An error occurred while restore FuncCastExpr.Expr") } ctx.WritePlain(", ") n.Tp.RestoreAsCastType(ctx, n.ExplicitCharSet) @@ -703,7 +702,7 @@ func (n *FuncCastExpr) Restore(ctx *format.RestoreCtx) error { case CastBinaryOperator: ctx.WriteKeyWord("BINARY ") if err := n.Expr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FuncCastExpr.Expr") + return annotatef(err, "An error occurred while restore FuncCastExpr.Expr") } } return nil @@ -882,18 +881,18 @@ func (n *AggregateFuncExpr) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := n.Args[i].Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AggregateFuncExpr.Args[%d]", i) + return annotatef(err, "An error occurred while restore AggregateFuncExpr.Args[%d]", i) } } if n.Order != nil { ctx.WritePlain(" ") if err := n.Order.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occur while restore AggregateFuncExpr.Args Order") + return annotate(err, "An error occur while restore AggregateFuncExpr.Args Order") } } ctx.WriteKeyWord(" SEPARATOR ") if err := n.Args[len(n.Args)-1].Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AggregateFuncExpr.Args SEPARATOR") + return annotate(err, "An error occurred while restore AggregateFuncExpr.Args SEPARATOR") } default: for i, argv := range n.Args { @@ -901,7 +900,7 @@ func (n *AggregateFuncExpr) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := argv.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AggregateFuncExpr.Args[%d]", i) + return annotatef(err, "An error occurred while restore AggregateFuncExpr.Args[%d]", i) } } } @@ -995,7 +994,7 @@ func (n *WindowFuncExpr) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("DISTINCT ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore WindowFuncExpr.Args[%d]", i) + return annotatef(err, "An error occurred while restore WindowFuncExpr.Args[%d]", i) } } ctx.WritePlain(")") @@ -1007,7 +1006,7 @@ func (n *WindowFuncExpr) Restore(ctx *format.RestoreCtx) error { } ctx.WriteKeyWord(" OVER ") if err := n.Spec.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore WindowFuncExpr.Spec") + return annotate(err, "An error occurred while restore WindowFuncExpr.Spec") } return nil @@ -1154,9 +1153,9 @@ func (unit TimeUnitType) Duration() (time.Duration, error) { case TimeUnitWeek: return time.Hour * 24 * 7, nil case TimeUnitMonth, TimeUnitQuarter, TimeUnitYear: - return 0, errors.Errorf("%s is not a constant time interval and cannot be used here", unit) + return 0, fmt.Errorf("%s is not a constant time interval and cannot be used here", unit) default: - return 0, errors.Errorf("%s is a composite time unit and is not supported yet", unit) + return 0, fmt.Errorf("%s is a composite time unit and is not supported yet", unit) } } diff --git a/ast/misc.go b/ast/misc.go index 1e56fe6..32b8acf 100644 --- a/ast/misc.go +++ b/ast/misc.go @@ -15,13 +15,12 @@ package ast import ( "bytes" + "errors" "fmt" "net/url" "strconv" "strings" - "github.com/pingcap/errors" - "github.com/pingcap/failpoint" "github.com/sqlc-dev/marino/auth" "github.com/sqlc-dev/marino/format" "github.com/sqlc-dev/marino/mysql" @@ -150,7 +149,7 @@ func (n *TraceStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") } if err := n.Stmt.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore TraceStmt.Stmt") + return annotate(err, "An error occurred while restore TraceStmt.Stmt") } return nil } @@ -226,12 +225,12 @@ func (n *ExplainStmt) Restore(ctx *format.RestoreCtx) error { if showStmt, ok := n.Stmt.(*ShowStmt); ok { ctx.WriteKeyWord("DESC ") if err := showStmt.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ExplainStmt.ShowStmt.Table") + return annotate(err, "An error occurred while restore ExplainStmt.ShowStmt.Table") } if showStmt.Column != nil { ctx.WritePlain(" ") if err := showStmt.Column.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ExplainStmt.ShowStmt.Column") + return annotate(err, "An error occurred while restore ExplainStmt.ShowStmt.Column") } } return nil @@ -256,7 +255,7 @@ func (n *ExplainStmt) Restore(ctx *format.RestoreCtx) error { } if n.Stmt != nil { if err := n.Stmt.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ExplainStmt.Stmt") + return annotate(err, "An error occurred while restore ExplainStmt.Stmt") } } return nil @@ -342,7 +341,7 @@ func (n *PlanReplayerStmt) Restore(ctx *format.RestoreCtx) error { if n.HistoricalStatsInfo != nil { ctx.WriteKeyWord("WITH STATS ") if err := n.HistoricalStatsInfo.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PlanReplayerStmt.HistoricalStatsInfo") + return annotate(err, "An error occurred while restore PlanReplayerStmt.HistoricalStatsInfo") } ctx.WriteKeyWord(" ") } @@ -371,25 +370,25 @@ func (n *PlanReplayerStmt) Restore(ctx *format.RestoreCtx) error { if n.Where != nil { ctx.WriteKeyWord(" WHERE ") if err := n.Where.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PlanReplayerStmt.Where") + return annotate(err, "An error occurred while restore PlanReplayerStmt.Where") } } if n.OrderBy != nil { ctx.WriteKeyWord(" ") if err := n.OrderBy.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PlanReplayerStmt.OrderBy") + return annotate(err, "An error occurred while restore PlanReplayerStmt.OrderBy") } } if n.Limit != nil { ctx.WriteKeyWord(" ") if err := n.Limit.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PlanReplayerStmt.Limit") + return annotate(err, "An error occurred while restore PlanReplayerStmt.Limit") } } return nil } if err := n.Stmt.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PlanReplayerStmt.Stmt") + return annotate(err, "An error occurred while restore PlanReplayerStmt.Stmt") } return nil } @@ -669,7 +668,7 @@ func (n *PrepareStmt) Restore(ctx *format.RestoreCtx) error { } if n.SQLVar != nil { if err := n.SQLVar.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore PrepareStmt.SQLVar") + return annotate(err, "An error occurred while restore PrepareStmt.SQLVar") } return nil } @@ -752,7 +751,7 @@ func (n *ExecuteStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := val.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore ExecuteStmt.UsingVars index %d", i) + return annotatef(err, "An error occurred while restore ExecuteStmt.UsingVars index %d", i) } } } @@ -886,7 +885,7 @@ type CommitStmt struct { func (n *CommitStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("COMMIT") if err := n.CompletionType.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CommitStmt.CompletionType") + return annotate(err, "An error occurred while restore CommitStmt.CompletionType") } return nil } @@ -919,7 +918,7 @@ func (n *RollbackStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(n.SavepointName) } if err := n.CompletionType.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore RollbackStmt.CompletionType") + return annotate(err, "An error occurred while restore RollbackStmt.CompletionType") } return nil } @@ -1015,12 +1014,12 @@ func (n *VariableAssignment) Restore(ctx *format.RestoreCtx) error { // need to redact the url for safety when `show processlist;` ctx.WritePlain(RedactURL(n.Value.(ValueExpr).GetString())) } else if err := n.Value.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore VariableAssignment.Value") + return annotate(err, "An error occurred while restore VariableAssignment.Value") } if n.ExtendValue != nil { ctx.WriteKeyWord(" COLLATE ") if err := n.ExtendValue.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore VariableAssignment.ExtendValue") + return annotate(err, "An error occurred while restore VariableAssignment.ExtendValue") } } return nil @@ -1099,7 +1098,7 @@ func (n *FlushStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FlushStmt.Tables[%d]", i) + return annotatef(err, "An error occurred while restore FlushStmt.Tables[%d]", i) } } if n.ReadLock { @@ -1149,7 +1148,7 @@ func (n *FlushStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := obj.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore FlushStmt.FlushObjects[%d]", i) + return annotatef(err, "An error occurred while restore FlushStmt.FlushObjects[%d]", i) } } if n.IsCluster { @@ -1213,7 +1212,7 @@ func (n *KillStmt) Restore(ctx *format.RestoreCtx) error { if n.Expr != nil { ctx.WriteKeyWord(" ") if err := n.Expr.Restore(ctx); err != nil { - return errors.Trace(err) + return err } } else { ctx.WritePlainf(" %d", n.ConnectionID) @@ -1288,7 +1287,7 @@ func (n *SetStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore SetStmt.Variables[%d]", i) + return annotatef(err, "An error occurred while restore SetStmt.Variables[%d]", i) } } return nil @@ -1415,7 +1414,7 @@ func (n *SetPwdStmt) Restore(ctx *format.RestoreCtx) error { if n.User != nil { ctx.WriteKeyWord(" FOR ") if err := n.User.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore SetPwdStmt.User") + return annotate(err, "An error occurred while restore SetPwdStmt.User") } } ctx.WritePlain("=") @@ -1473,7 +1472,7 @@ func (n *SetRoleStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") err := role.Restore(ctx) if err != nil { - return errors.Annotate(err, "An error occurred while restore SetRoleStmt.RoleList") + return annotate(err, "An error occurred while restore SetRoleStmt.RoleList") } if i != len(n.RoleList)-1 { ctx.WritePlain(",") @@ -1513,7 +1512,7 @@ func (n *SetDefaultRoleStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") err := role.Restore(ctx) if err != nil { - return errors.Annotate(err, "An error occurred while restore SetDefaultRoleStmt.RoleList") + return annotate(err, "An error occurred while restore SetDefaultRoleStmt.RoleList") } if i != len(n.RoleList)-1 { ctx.WritePlain(",") @@ -1524,7 +1523,7 @@ func (n *SetDefaultRoleStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") err := user.Restore(ctx) if err != nil { - return errors.Annotate(err, "An error occurred while restore SetDefaultRoleStmt.UserList") + return annotate(err, "An error occurred while restore SetDefaultRoleStmt.UserList") } if i != len(n.UserList)-1 { ctx.WritePlain(",") @@ -1553,12 +1552,12 @@ type UserSpec struct { // Restore implements Node interface. func (n *UserSpec) Restore(ctx *format.RestoreCtx) error { if err := n.User.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore UserSpec.User") + return annotate(err, "An error occurred while restore UserSpec.User") } if n.AuthOpt != nil { ctx.WritePlain(" ") if err := n.AuthOpt.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore UserSpec.AuthOpt") + return annotate(err, "An error occurred while restore UserSpec.AuthOpt") } } return nil @@ -1607,7 +1606,7 @@ func (t *AuthTokenOrTLSOption) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("TOKEN_ISSUER ") ctx.WriteString(t.Value) default: - return errors.Errorf("Unsupported AuthTokenOrTLSOption.Type %d", t.Type) + return fmt.Errorf("Unsupported AuthTokenOrTLSOption.Type %d", t.Type) } return nil } @@ -1671,7 +1670,7 @@ func (r *ResourceOption) Restore(ctx *format.RestoreCtx) error { case MaxUserConnections: ctx.WriteKeyWord("MAX_USER_CONNECTIONS ") default: - return errors.Errorf("Unsupported ResourceOption.Type %d", r.Type) + return fmt.Errorf("Unsupported ResourceOption.Type %d", r.Type) } ctx.WritePlainf("%d", r.Count) return nil @@ -1739,7 +1738,7 @@ func (p *PasswordOrLockOption) Restore(ctx *format.RestoreCtx) error { case PasswordReuseDefault: ctx.WriteKeyWord("PASSWORD REUSE INTERVAL DEFAULT") default: - return errors.Errorf("Unsupported PasswordOrLockOption.Type %d", p.Type) + return fmt.Errorf("Unsupported PasswordOrLockOption.Type %d", p.Type) } return nil } @@ -1800,7 +1799,7 @@ func (n *CreateUserStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore CreateUserStmt.Specs[%d]", i) + return annotatef(err, "An error occurred while restore CreateUserStmt.Specs[%d]", i) } } @@ -1813,7 +1812,7 @@ func (n *CreateUserStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(" AND ") } if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore CreateUserStmt.AuthTokenOrTLSOptions[%d]", i) + return annotatef(err, "An error occurred while restore CreateUserStmt.AuthTokenOrTLSOptions[%d]", i) } } @@ -1824,26 +1823,26 @@ func (n *CreateUserStmt) Restore(ctx *format.RestoreCtx) error { for i, v := range n.ResourceOptions { ctx.WritePlain(" ") if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore CreateUserStmt.ResourceOptions[%d]", i) + return annotatef(err, "An error occurred while restore CreateUserStmt.ResourceOptions[%d]", i) } } for i, v := range n.PasswordOrLockOptions { ctx.WritePlain(" ") if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore CreateUserStmt.PasswordOrLockOptions[%d]", i) + return annotatef(err, "An error occurred while restore CreateUserStmt.PasswordOrLockOptions[%d]", i) } } if n.CommentOrAttributeOption != nil { if err := n.CommentOrAttributeOption.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore CreateUserStmt.CommentOrAttributeOption") + return annotatef(err, "An error occurred while restore CreateUserStmt.CommentOrAttributeOption") } } if n.ResourceGroupNameOption != nil { if err := n.ResourceGroupNameOption.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore CreateUserStmt.ResourceGroupNameOption") + return annotatef(err, "An error occurred while restore CreateUserStmt.ResourceGroupNameOption") } } @@ -1896,7 +1895,7 @@ func (n *AlterUserStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("USER") ctx.WritePlain("() ") if err := n.CurrentAuth.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterUserStmt.CurrentAuth") + return annotate(err, "An error occurred while restore AlterUserStmt.CurrentAuth") } } for i, v := range n.Specs { @@ -1904,7 +1903,7 @@ func (n *AlterUserStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterUserStmt.Specs[%d]", i) + return annotatef(err, "An error occurred while restore AlterUserStmt.Specs[%d]", i) } } @@ -1917,7 +1916,7 @@ func (n *AlterUserStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(" AND ") } if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterUserStmt.AuthTokenOrTLSOptions[%d]", i) + return annotatef(err, "An error occurred while restore AlterUserStmt.AuthTokenOrTLSOptions[%d]", i) } } @@ -1928,26 +1927,26 @@ func (n *AlterUserStmt) Restore(ctx *format.RestoreCtx) error { for i, v := range n.ResourceOptions { ctx.WritePlain(" ") if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterUserStmt.ResourceOptions[%d]", i) + return annotatef(err, "An error occurred while restore AlterUserStmt.ResourceOptions[%d]", i) } } for i, v := range n.PasswordOrLockOptions { ctx.WritePlain(" ") if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterUserStmt.PasswordOrLockOptions[%d]", i) + return annotatef(err, "An error occurred while restore AlterUserStmt.PasswordOrLockOptions[%d]", i) } } if n.CommentOrAttributeOption != nil { if err := n.CommentOrAttributeOption.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterUserStmt.CommentOrAttributeOption") + return annotatef(err, "An error occurred while restore AlterUserStmt.CommentOrAttributeOption") } } if n.ResourceGroupNameOption != nil { if err := n.ResourceGroupNameOption.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterUserStmt.ResourceGroupNameOption") + return annotatef(err, "An error occurred while restore AlterUserStmt.ResourceGroupNameOption") } } @@ -2019,7 +2018,7 @@ func (n *AlterRangeStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteName(n.RangeName.O) ctx.WritePlain(" ") if err := n.PlacementOption.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AlterRangeStmt.PlacementOption") + return annotate(err, "An error occurred while restore AlterRangeStmt.PlacementOption") } return nil } @@ -2059,7 +2058,7 @@ func (n *DropUserStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore DropUserStmt.UserList[%d]", i) + return annotatef(err, "An error occurred while restore DropUserStmt.UserList[%d]", i) } } return nil @@ -2087,7 +2086,7 @@ func (n *StringOrUserVar) Restore(ctx *format.RestoreCtx) error { } if n.UserVar != nil { if err := n.UserVar.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ColumnNameOrUserVar.UserVar") + return annotate(err, "An error occurred while restore ColumnNameOrUserVar.UserVar") } } return nil @@ -2143,7 +2142,7 @@ func (n *RecommendIndexStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(opt.Option) ctx.WritePlain(" = ") if err := opt.Value.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore RecommendIndexStmt.Options[%d]", i) + return annotatef(err, "An error occurred while restore RecommendIndexStmt.Options[%d]", i) } } } @@ -2164,7 +2163,7 @@ func (n *RecommendIndexStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(opt.Option) ctx.WritePlain(" = ") if err := opt.Value.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore RecommendIndexStmt.Options[%d]", i) + return annotatef(err, "An error occurred while restore RecommendIndexStmt.Options[%d]", i) } } } @@ -2204,17 +2203,17 @@ func (n *CreateBindingStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore CreateBindingStmt.PlanDigests[%d]", i) + return annotatef(err, "An error occurred while restore CreateBindingStmt.PlanDigests[%d]", i) } } } else { ctx.WriteKeyWord("BINDING FOR ") if err := n.OriginNode.Restore(ctx); err != nil { - return errors.Trace(err) + return err } ctx.WriteKeyWord(" USING ") if err := n.HintedNode.Restore(ctx); err != nil { - return errors.Trace(err) + return err } } return nil @@ -2274,17 +2273,17 @@ func (n *DropBindingStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore CreateBindingStmt.PlanDigests[%d]", i) + return annotatef(err, "An error occurred while restore CreateBindingStmt.PlanDigests[%d]", i) } } } else { if err := n.OriginNode.Restore(ctx); err != nil { - return errors.Trace(err) + return err } if n.HintedNode != nil { ctx.WriteKeyWord(" USING ") if err := n.HintedNode.Restore(ctx); err != nil { - return errors.Trace(err) + return err } } } @@ -2357,12 +2356,12 @@ func (n *SetBindingStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteString(n.SQLDigest) } else { if err := n.OriginNode.Restore(ctx); err != nil { - return errors.Trace(err) + return err } if n.HintedNode != nil { ctx.WriteKeyWord(" USING ") if err := n.HintedNode.Restore(ctx); err != nil { - return errors.Trace(err) + return err } } } @@ -2440,7 +2439,7 @@ func (n *CreateStatisticsStmt) Restore(ctx *format.RestoreCtx) error { } ctx.WriteKeyWord("ON ") if err := n.Table.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CreateStatisticsStmt.Table") + return annotate(err, "An error occurred while restore CreateStatisticsStmt.Table") } ctx.WritePlain("(") @@ -2449,7 +2448,7 @@ func (n *CreateStatisticsStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := col.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore CreateStatisticsStmt.Columns: [%v]", i) + return annotatef(err, "An error occurred while restore CreateStatisticsStmt.Columns: [%v]", i) } } ctx.WritePlain(")") @@ -2520,7 +2519,7 @@ func (n *DoStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore DoStmt.Exprs[%d]", i) + return annotatef(err, "An error occurred while restore DoStmt.Exprs[%d]", i) } } return nil @@ -2682,7 +2681,7 @@ func (l *AlterJobOption) Restore(ctx *format.RestoreCtx) error { } else { ctx.WritePlain(l.Name + " = ") if err := l.Value.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AlterJobOption") + return annotatef(err, "An error occurred while restore AlterJobOption") } } return nil @@ -2716,7 +2715,7 @@ func (n *AdminStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AdminStmt.Tables[%d]", i) + return annotatef(err, "An error occurred while restore AdminStmt.Tables[%d]", i) } } return nil @@ -2742,7 +2741,7 @@ func (n *AdminStmt) Restore(ctx *format.RestoreCtx) error { if n.Where != nil { ctx.WriteKeyWord(" WHERE ") if err := n.Where.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore ShowStmt.Where") + return annotate(err, "An error occurred while restore ShowStmt.Where") } } case AdminShowNextRowID: @@ -2812,7 +2811,7 @@ func (n *AdminStmt) Restore(ctx *format.RestoreCtx) error { case AdminShowSlow: ctx.WriteKeyWord("SHOW SLOW ") if err := n.ShowSlow.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore AdminStmt.ShowSlow") + return annotate(err, "An error occurred while restore AdminStmt.ShowSlow") } case AdminReloadExprPushdownBlacklist: ctx.WriteKeyWord("RELOAD EXPR_PUSHDOWN_BLACKLIST") @@ -2880,7 +2879,7 @@ func (n *AdminStmt) Restore(ctx *format.RestoreCtx) error { } ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AdminStmt.AlterJobOptions[%d]", i) + return annotatef(err, "An error occurred while restore AdminStmt.AlterJobOptions[%d]", i) } } case AdminWorkloadRepoCreate: @@ -2929,7 +2928,7 @@ func (n *RoleOrPriv) ToRole() (*auth.RoleIdentity, error) { if r, ok := n.Node.(*auth.RoleIdentity); ok { return r, nil } - return nil, errors.Errorf("can't convert to RoleIdentity, type %T", n.Node) + return nil, fmt.Errorf("can't convert to RoleIdentity, type %T", n.Node) } return &auth.RoleIdentity{Username: n.Symbols, Hostname: "%"}, nil } @@ -2939,7 +2938,7 @@ func (n *RoleOrPriv) ToPriv() (*PrivElem, error) { if p, ok := n.Node.(*PrivElem); ok { return p, nil } - return nil, errors.Errorf("can't convert to PrivElem, type %T", n.Node) + return nil, fmt.Errorf("can't convert to PrivElem, type %T", n.Node) } if len(n.Symbols) == 0 { return nil, errors.New("symbols should not be length 0") @@ -2976,7 +2975,7 @@ func (n *PrivElem) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore PrivElem.Cols[%d]", i) + return annotatef(err, "An error occurred while restore PrivElem.Cols[%d]", i) } } ctx.WritePlain(")") @@ -3093,18 +3092,18 @@ func (n *RevokeStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore RevokeStmt.Privs[%d]", i) + return annotatef(err, "An error occurred while restore RevokeStmt.Privs[%d]", i) } } ctx.WriteKeyWord(" ON ") if n.ObjectType != ObjectTypeNone { if err := n.ObjectType.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore RevokeStmt.ObjectType") + return annotate(err, "An error occurred while restore RevokeStmt.ObjectType") } ctx.WritePlain(" ") } if err := n.Level.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore RevokeStmt.Level") + return annotate(err, "An error occurred while restore RevokeStmt.Level") } ctx.WriteKeyWord(" FROM ") for i, v := range n.Users { @@ -3112,7 +3111,7 @@ func (n *RevokeStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore RevokeStmt.Users[%d]", i) + return annotatef(err, "An error occurred while restore RevokeStmt.Users[%d]", i) } } return nil @@ -3151,7 +3150,7 @@ func (n *RevokeRoleStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := role.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore RevokeRoleStmt.Roles[%d]", i) + return annotatef(err, "An error occurred while restore RevokeRoleStmt.Roles[%d]", i) } } ctx.WriteKeyWord(" FROM ") @@ -3160,7 +3159,7 @@ func (n *RevokeRoleStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore RevokeRoleStmt.Users[%d]", i) + return annotatef(err, "An error occurred while restore RevokeRoleStmt.Users[%d]", i) } } return nil @@ -3198,18 +3197,18 @@ func (n *GrantStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore GrantStmt.Privs[%d]", i) + return annotatef(err, "An error occurred while restore GrantStmt.Privs[%d]", i) } } ctx.WriteKeyWord(" ON ") if n.ObjectType != ObjectTypeNone { if err := n.ObjectType.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore GrantStmt.ObjectType") + return annotate(err, "An error occurred while restore GrantStmt.ObjectType") } ctx.WritePlain(" ") } if err := n.Level.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore GrantStmt.Level") + return annotate(err, "An error occurred while restore GrantStmt.Level") } ctx.WriteKeyWord(" TO ") for i, v := range n.Users { @@ -3217,7 +3216,7 @@ func (n *GrantStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore GrantStmt.Users[%d]", i) + return annotatef(err, "An error occurred while restore GrantStmt.Users[%d]", i) } } if n.AuthTokenOrTLSOptions != nil { @@ -3229,7 +3228,7 @@ func (n *GrantStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(" AND ") } if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore GrantStmt.AuthTokenOrTLSOptions[%d]", i) + return annotatef(err, "An error occurred while restore GrantStmt.AuthTokenOrTLSOptions[%d]", i) } } } @@ -3290,7 +3289,7 @@ func (n *GrantProxyStmt) Accept(v Visitor) (Node, bool) { func (n *GrantProxyStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("GRANT PROXY ON ") if err := n.LocalUser.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore GrantProxyStmt.LocalUser") + return annotatef(err, "An error occurred while restore GrantProxyStmt.LocalUser") } ctx.WriteKeyWord(" TO ") for i, v := range n.ExternalUsers { @@ -3298,7 +3297,7 @@ func (n *GrantProxyStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore GrantProxyStmt.ExternalUsers[%d]", i) + return annotatef(err, "An error occurred while restore GrantProxyStmt.ExternalUsers[%d]", i) } } if n.WithGrant { @@ -3334,7 +3333,7 @@ func (n *GrantRoleStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := role.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore GrantRoleStmt.Roles[%d]", i) + return annotatef(err, "An error occurred while restore GrantRoleStmt.Roles[%d]", i) } } } @@ -3344,7 +3343,7 @@ func (n *GrantRoleStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := v.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore GrantStmt.Users[%d]", i) + return annotatef(err, "An error occurred while restore GrantStmt.Users[%d]", i) } } return nil @@ -3446,7 +3445,7 @@ func (n *RenameUserStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := user2user.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore RenameUserStmt.UserToUsers") + return annotate(err, "An error occurred while restore RenameUserStmt.UserToUsers") } } return nil @@ -3480,11 +3479,11 @@ type UserToUser struct { // Restore implements Node interface. func (n *UserToUser) Restore(ctx *format.RestoreCtx) error { if err := n.OldUser.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore UserToUser.OldUser") + return annotate(err, "An error occurred while restore UserToUser.OldUser") } ctx.WriteKeyWord(" TO ") if err := n.NewUser.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore UserToUser.NewUser") + return annotate(err, "An error occurred while restore UserToUser.NewUser") } return nil } @@ -3778,7 +3777,7 @@ func (n *BRIEStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := table.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore BRIEStmt.Tables[%d]", index) + return annotatef(err, "An error occurred while restore BRIEStmt.Tables[%d]", index) } } case len(n.Schemas) != 0: @@ -3830,9 +3829,6 @@ func RedactURL(str string) string { return str } scheme := u.Scheme - failpoint.Inject("forceRedactURL", func() { - scheme = "s3" - }) var redactKeys map[string]struct{} switch strings.ToLower(scheme) { @@ -3903,7 +3899,7 @@ func (n *ImportIntoActionStmt) Accept(v Visitor) (Node, bool) { func (n *ImportIntoActionStmt) Restore(ctx *format.RestoreCtx) error { if n.Tp != ImportIntoCancel { - return errors.Errorf("invalid IMPORT INTO action type: %s", n.Tp) + return fmt.Errorf("invalid IMPORT INTO action type: %s", n.Tp) } ctx.WriteKeyWord("CANCEL IMPORT JOB ") ctx.WritePlainf("%d", n.JobID) @@ -4305,12 +4301,12 @@ type CalibrateResourceStmt struct { func (n *CalibrateResourceStmt) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("CALIBRATE RESOURCE") if err := n.Tp.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore CalibrateResourceStmt.CalibrateResourceType") + return annotate(err, "An error occurred while restore CalibrateResourceStmt.CalibrateResourceType") } for i, option := range n.DynamicCalibrateResourceOptionList { ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing DynamicCalibrateResourceOption: [%v]", i) + return annotatef(err, "An error occurred while splicing DynamicCalibrateResourceOption: [%v]", i) } } return nil @@ -4354,12 +4350,12 @@ func (n *DynamicCalibrateResourceOption) Restore(ctx *format.RestoreCtx) error { case CalibrateStartTime: ctx.WriteKeyWord("START_TIME ") if err := n.Ts.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing DynamicCalibrateResourceOption StartTime") + return annotate(err, "An error occurred while splicing DynamicCalibrateResourceOption StartTime") } case CalibrateEndTime: ctx.WriteKeyWord("END_TIME ") if err := n.Ts.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while splicing DynamicCalibrateResourceOption EndTime") + return annotate(err, "An error occurred while splicing DynamicCalibrateResourceOption EndTime") } case CalibrateDuration: ctx.WriteKeyWord("DURATION ") @@ -4368,13 +4364,13 @@ func (n *DynamicCalibrateResourceOption) Restore(ctx *format.RestoreCtx) error { } else { ctx.WriteKeyWord("INTERVAL ") if err := n.Ts.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occurred while restore DynamicCalibrateResourceOption DURATION TS") + return annotate(err, "An error occurred while restore DynamicCalibrateResourceOption DURATION TS") } ctx.WritePlain(" ") ctx.WriteKeyWord(n.Unit.String()) } default: - return errors.Errorf("invalid DynamicCalibrateResourceOption: %d", n.Tp) + return fmt.Errorf("invalid DynamicCalibrateResourceOption: %d", n.Tp) } return nil } @@ -4413,7 +4409,7 @@ func (n *DropQueryWatchStmt) Restore(ctx *format.RestoreCtx) error { case n.GroupNameExpr != nil: ctx.WriteKeyWord("RESOURCE GROUP ") if err := n.GroupNameExpr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore expr: [%v]", n.GroupNameExpr) + return annotatef(err, "An error occurred while restore expr: [%v]", n.GroupNameExpr) } default: ctx.WritePlainf("%d", n.IntValue) @@ -4439,7 +4435,7 @@ func (n *AddQueryWatchStmt) Restore(ctx *format.RestoreCtx) error { for i, option := range n.QueryWatchOptionList { ctx.WritePlain(" ") if err := option.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing QueryWatchOptionList: [%v]", i) + return annotatef(err, "An error occurred while splicing QueryWatchOptionList: [%v]", i) } } return nil @@ -4538,7 +4534,7 @@ func (n *QueryWatchResourceGroupOption) restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord("RESOURCE GROUP ") if n.GroupNameExpr != nil { if err := n.GroupNameExpr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing ExprValue: [%v]", n.GroupNameExpr) + return annotatef(err, "An error occurred while splicing ExprValue: [%v]", n.GroupNameExpr) } } else { ctx.WriteName(n.GroupNameStr.String()) @@ -4569,7 +4565,7 @@ func (n *QueryWatchTextOption) Restore(ctx *format.RestoreCtx) error { } } if err := n.PatternExpr.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while splicing ExprValue: [%v]", n.PatternExpr) + return annotatef(err, "An error occurred while splicing ExprValue: [%v]", n.PatternExpr) } return nil } diff --git a/ast/model.go b/ast/model.go index 64a8c3b..f3ee139 100644 --- a/ast/model.go +++ b/ast/model.go @@ -18,7 +18,6 @@ import ( "strings" "unsafe" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/util" ) @@ -316,7 +315,7 @@ func (cis *CIStr) UnmarshalJSON(b []byte) error { // Unmarshal CIStr from a single string. err := json.Unmarshal(b, &cis.O) if err != nil { - return errors.Trace(err) + return err } cis.L = strings.ToLower(cis.O) return nil diff --git a/ast/procedure.go b/ast/procedure.go index 9620063..698e082 100644 --- a/ast/procedure.go +++ b/ast/procedure.go @@ -14,9 +14,9 @@ package ast import ( + "fmt" "strconv" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/format" "github.com/sqlc-dev/marino/types" ) @@ -160,7 +160,7 @@ func (n *ProcedureDecl) Restore(ctx *format.RestoreCtx) error { if n.DeclDefault != nil { ctx.WriteKeyWord(" DEFAULT ") if err := n.DeclDefault.Restore(ctx); err != nil { - return errors.Annotate(err, "An error occur while restore expr") + return annotate(err, "An error occur while restore expr") } } return nil @@ -1041,7 +1041,7 @@ func (n *ProcedureLabelBlock) Restore(ctx *format.RestoreCtx) error { return err } if n.LabelError { - return errors.Errorf("the same label has different names,begin: %s,end: %s", n.LabelName, n.LabelEnd) + return fmt.Errorf("the same label has different names,begin: %s,end: %s", n.LabelName, n.LabelEnd) } ctx.WriteKeyWord(" ") ctx.WriteName(n.LabelName) @@ -1103,7 +1103,7 @@ func (n *ProcedureLabelLoop) Restore(ctx *format.RestoreCtx) error { return err } if n.LabelError { - return errors.Errorf("the same label has different names,begin: %s,end: %s", n.LabelName, n.LabelEnd) + return fmt.Errorf("the same label has different names,begin: %s,end: %s", n.LabelName, n.LabelEnd) } ctx.WriteKeyWord(" ") ctx.WriteName(n.LabelName) diff --git a/ast/stats.go b/ast/stats.go index 215ec0d..6756ae2 100644 --- a/ast/stats.go +++ b/ast/stats.go @@ -14,7 +14,8 @@ package ast import ( - "github.com/pingcap/errors" + "fmt" + "github.com/sqlc-dev/marino/format" ) @@ -116,7 +117,7 @@ func (n *AnalyzeTableStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(",") } if err := table.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore AnalyzeTableStmt.TableNames[%d]", i) + return annotatef(err, "An error occurred while restore AnalyzeTableStmt.TableNames[%d]", i) } } if len(n.PartitionNames) != 0 { @@ -216,7 +217,7 @@ func (n *DropStatsStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := table.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore DropStatsStmt.Tables[%d]", index) + return annotatef(err, "An error occurred while restore DropStatsStmt.Tables[%d]", index) } } @@ -293,7 +294,7 @@ func (n *LockStatsStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := table.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore LockStatsStmt.Tables[%d]", index) + return annotatef(err, "An error occurred while restore LockStatsStmt.Tables[%d]", index) } } return nil @@ -331,7 +332,7 @@ func (n *UnlockStatsStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := table.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore UnlockStatsStmt.Tables[%d]", index) + return annotatef(err, "An error occurred while restore UnlockStatsStmt.Tables[%d]", index) } } return nil @@ -389,7 +390,7 @@ func (n *RefreshStatsStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(", ") } if err := refreshObject.Restore(ctx); err != nil { - return errors.Annotatef(err, "An error occurred while restore RefreshStatsStmt.RefreshObjects[%d]", index) + return annotatef(err, "An error occurred while restore RefreshStatsStmt.RefreshObjects[%d]", index) } } if n.RefreshMode != nil { @@ -401,7 +402,7 @@ func (n *RefreshStatsStmt) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain(" ") ctx.WriteKeyWord("FULL") default: - return errors.Errorf("invalid refresh stats mode: %d", *n.RefreshMode) + return fmt.Errorf("invalid refresh stats mode: %d", *n.RefreshMode) } } if n.IsClusterWide { @@ -515,7 +516,7 @@ func (o *StatsObject) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain("*.*") default: // This should never happen. - return errors.Errorf("invalid stats object scope: %d", o.StatsObjectScope) + return fmt.Errorf("invalid stats object scope: %d", o.StatsObjectScope) } return nil } diff --git a/auth/mysql_native_password.go b/auth/mysql_native_password.go index a3ee9c8..ecc2b5e 100644 --- a/auth/mysql_native_password.go +++ b/auth/mysql_native_password.go @@ -19,7 +19,6 @@ import ( "encoding/hex" "fmt" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/terror" ) @@ -43,9 +42,9 @@ func CheckScrambledPassword(salt, hpwd, auth []byte) bool { //nolint: gosec crypt := sha1.New() _, err := crypt.Write(salt) - terror.Log(errors.Trace(err)) + terror.Log(err) _, err = crypt.Write(hpwd) - terror.Log(errors.Trace(err)) + terror.Log(err) hash := crypt.Sum(nil) // token = scrambleHash XOR stage1Hash if len(auth) != len(hash) { @@ -63,7 +62,7 @@ func Sha1Hash(bs []byte) []byte { //nolint: gosec crypt := sha1.New() _, err := crypt.Write(bs) - terror.Log(errors.Trace(err)) + terror.Log(err) return crypt.Sum(nil) } @@ -93,7 +92,7 @@ func EncodePasswordBytes(pwd []byte) string { func DecodePassword(pwd string) ([]byte, error) { x, err := hex.DecodeString(pwd[1:]) if err != nil { - return nil, errors.Trace(err) + return nil, err } return x, nil } diff --git a/charset/charset.go b/charset/charset.go index e96ed65..f3aa9e4 100644 --- a/charset/charset.go +++ b/charset/charset.go @@ -14,12 +14,12 @@ package charset import ( + "fmt" "log/slog" "runtime/debug" "slices" "strings" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/mysql" "github.com/sqlc-dev/marino/terror" ) @@ -141,7 +141,7 @@ func GetDefaultCollationLegacy(charset string) (string, error) { case CharsetUTF8, CharsetUTF8MB4, CharsetASCII, CharsetLatin1, CharsetBin: return GetDefaultCollation(charset) default: - return "", errors.Errorf("Unknown charset %s", charset) + return "", fmt.Errorf("Unknown charset %s", charset) } } @@ -170,10 +170,10 @@ func GetCharsetInfo(cs string) (*Charset, error) { } if c, ok := charsets[strings.ToLower(cs)]; ok { - return c, errors.Errorf("Unsupported charset %s", cs) + return c, fmt.Errorf("Unsupported charset %s", cs) } - return nil, errors.Errorf("Unknown charset %s", cs) + return nil, fmt.Errorf("Unknown charset %s", cs) } // GetCharsetInfoByID returns charset and collation for id as cs_number. @@ -189,7 +189,7 @@ func GetCharsetInfoByID(coID int) (charsetStr string, collateStr string, err err "unable to get collation name from collation ID, return default charset and collation instead", slog.Int("ID", coID), slog.String("stack", string(debug.Stack()))) - return mysql.DefaultCharset, mysql.DefaultCollationName, errors.Errorf("Unknown collation id %d", coID) + return mysql.DefaultCharset, mysql.DefaultCollationName, fmt.Errorf("Unknown collation id %d", coID) } func utf8Alias(csname string) string { @@ -219,7 +219,7 @@ func GetCollationByName(name string) (*Collation, error) { func GetCollationByID(id int) (*Collation, error) { collation, ok := collationsIDMap[id] if !ok { - return nil, errors.Errorf("Unknown collation id %d", id) + return nil, fmt.Errorf("Unknown collation id %d", id) } return collation, nil diff --git a/duration/duration.go b/duration/duration.go index 6eb1311..d3783a0 100644 --- a/duration/duration.go +++ b/duration/duration.go @@ -15,11 +15,11 @@ package duration import ( + "errors" + "fmt" "strconv" "time" "unicode" - - "github.com/pingcap/errors" ) func readFloat(s string) (float64, string, error) { @@ -63,7 +63,7 @@ func ParseDuration(s string) (time.Duration, error) { case 'm': duration += time.Duration(i * float64(time.Minute)) default: - return 0, errors.Errorf("unknown unit %c", s[0]) + return 0, fmt.Errorf("unknown unit %c", s[0]) } s = s[1:] diff --git a/format/format_test.go b/format/format_test.go index 67cd5f7..f49efa0 100644 --- a/format/format_test.go +++ b/format/format_test.go @@ -15,14 +15,12 @@ package format import ( "bytes" + "errors" "fmt" "io" + "reflect" "strings" "testing" - - "github.com/pingcap/errors" - - "reflect" ) func checkFormat(t *testing.T, f Formatter, buf *bytes.Buffer, str, expect string) { diff --git a/go.mod b/go.mod index c032eb1..6354f44 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,6 @@ go 1.25 require ( github.com/coreos/go-semver v0.3.1 github.com/go-sql-driver/mysql v1.7.1 - github.com/pingcap/errors v0.11.5-0.20250523034308-74f78ae071ee - github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86 go.uber.org/goleak v1.3.0 golang.org/x/text v0.19.0 modernc.org/mathutil v1.6.0 @@ -18,6 +16,5 @@ require ( require ( github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect - go.uber.org/atomic v1.11.0 // indirect modernc.org/golex v1.1.0 // indirect ) diff --git a/go.sum b/go.sum index 1a930f1..8ce764b 100644 --- a/go.sum +++ b/go.sum @@ -1,44 +1,22 @@ github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= -github.com/pingcap/errors v0.11.5-0.20250523034308-74f78ae071ee h1:/IDPbpzkzA97t1/Z1+C3KlxbevjMeaI6BQYxvivu4u8= -github.com/pingcap/errors v0.11.5-0.20250523034308-74f78ae071ee/go.mod h1:X2r9ueLEUZgtx2cIogM0v4Zj5uvvzhuuiu7Pn8HzMPg= -github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86 h1:tdMsjOqUR7YXHoBitzdebTvOjs/swniBTOLy5XiMtuE= -github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86/go.mod h1:exzhVYca3WRtd6gclGNErRWb1qEgff3LYta0LvRmON4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/exp v0.0.0-20181106170214-d68db9428509/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= modernc.org/fileutil v1.1.2/go.mod h1:HdjlliqRHrMAI4nVOvvpYVzVgvRSK7WnoCiG0GUWJNo= diff --git a/goyacc/format_yacc.go b/goyacc/format_yacc.go index d554aa1..9b07bd7 100644 --- a/goyacc/format_yacc.go +++ b/goyacc/format_yacc.go @@ -22,7 +22,6 @@ import ( "regexp" "strings" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/format" parser "modernc.org/parser/yacc" "modernc.org/strutil" @@ -201,7 +200,7 @@ func getTokenComment(token *parser.Token, layout stringLayout) string { case divNewLineStringLayout: splitter, beforeComment = "\n", "\n" default: - panic(errors.Errorf("unsupported stringLayout: %v", layout)) + panic(fmt.Errorf("unsupported stringLayout: %v", layout)) } var sb strings.Builder @@ -473,7 +472,7 @@ func (s *SpecialActionValTransformer) restore(src string) string { return yaccFmtVarRegex.ReplaceAllStringFunc(src, func(matched string) string { origin, ok := s.store[matched] if !ok { - panic(errors.Errorf("mismatch in SpecialActionValTransformer")) + panic(fmt.Errorf("mismatch in SpecialActionValTransformer")) } return origin }) @@ -526,7 +525,7 @@ func (n *NotNilAssert) and(target any) *NotNilAssert { return n } if target == nil { - n.err = errors.Errorf("encounter nil, index: %d", n.idx) + n.err = fmt.Errorf("encounter nil, index: %d", n.idx) } n.idx++ return n diff --git a/mysql/const.go b/mysql/const.go index da3a45d..deb4908 100644 --- a/mysql/const.go +++ b/mysql/const.go @@ -18,7 +18,6 @@ import ( "strings" "github.com/coreos/go-semver/semver" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/format" ) @@ -76,16 +75,16 @@ func NormalizeTiDBReleaseVersionForNextGen(releaseVersion string) string { // version format `CLOUD.<4-digit-year-2-digit-month>.`. func BuildTiDBXReleaseVersion(releaseVersion string) (string, error) { if !strings.HasPrefix(releaseVersion, "v") { - return "", errors.Errorf("invalid TiDB release version %q, should start with 'v'", releaseVersion) + return "", fmt.Errorf("invalid TiDB release version %q, should start with 'v'", releaseVersion) } rawVer := strings.TrimPrefix(releaseVersion, "v") ver, err := semver.NewVersion(rawVer) if err != nil { - return "", errors.Errorf("invalid TiDB release version %q, expect a semantic version", releaseVersion) + return "", fmt.Errorf("invalid TiDB release version %q, expect a semantic version", releaseVersion) } year := 2000 + ver.Major if year < TiDBXVerMinYear || year > TiDBXVerMaxYear || ver.Minor < 1 || ver.Minor > 12 { - return "", errors.Errorf("invalid TiDB release version %q, the semantic version part should be in [2-digit-year].[month].[fix-version]-[xxx] format", releaseVersion) + return "", fmt.Errorf("invalid TiDB release version %q, the semantic version part should be in [2-digit-year].[month].[fix-version]-[xxx] format", releaseVersion) } preRelease := string(ver.PreRelease) if preRelease != "" { @@ -690,7 +689,7 @@ func (n *PriorityEnum) Restore(ctx *format.RestoreCtx) error { case DelayedPriority: ctx.WriteKeyWord("DELAYED") default: - return errors.Errorf("undefined PriorityEnum Type[%d]", *n) + return fmt.Errorf("undefined PriorityEnum Type[%d]", *n) } return nil } diff --git a/mysql/error.go b/mysql/error.go index f3b3a83..74f8f9a 100644 --- a/mysql/error.go +++ b/mysql/error.go @@ -14,9 +14,8 @@ package mysql import ( + "errors" "fmt" - - "github.com/pingcap/errors" ) // Portable analogs of some common call errors. @@ -48,7 +47,6 @@ func NewErr(errCode uint16, args ...any) *SQLError { } if sqlErr, ok := MySQLErrName[errCode]; ok { - errors.RedactErrorArg(args, sqlErr.RedactArgPos) e.Message = fmt.Sprintf(sqlErr.Raw, args...) } else { e.Message = fmt.Sprint(args...) @@ -58,7 +56,7 @@ func NewErr(errCode uint16, args ...any) *SQLError { } // NewErrf creates a SQL error, with an error code and a format specifier. -func NewErrf(errCode uint16, format string, redactArgPos []int, args ...any) *SQLError { +func NewErrf(errCode uint16, format string, _ []int, args ...any) *SQLError { e := &SQLError{Code: errCode} if s, ok := MySQLState[errCode]; ok { @@ -67,7 +65,6 @@ func NewErrf(errCode uint16, format string, redactArgPos []int, args ...any) *SQ e.State = DefaultMySQLState } - errors.RedactErrorArg(args, redactArgPos) e.Message = fmt.Sprintf(format, args...) return e diff --git a/parser/digester.go b/parser/digester.go index 1609650..325d68d 100644 --- a/parser/digester.go +++ b/parser/digester.go @@ -22,7 +22,6 @@ import ( "sync" "unsafe" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/charset" ) @@ -87,7 +86,7 @@ func DigestNormalized(normalized string) (digest *Digest) { // for example, when "ON": Normalize('select 1 from b where a = 1') => 'select ? from b where a = ?' // for example, when "MARKER": Normalize('select 1 from b where a = 1') => 'select ‹1› from b where a = ‹1›' func Normalize(sql string, redact string) (result string) { - if redact == "" || redact == errors.RedactLogDisable { + if redact == "" || redact == RedactLogDisable { return sql } d := digesterPool.Get().(*sqlDigester) @@ -115,7 +114,7 @@ func NormalizeForBinding(sql string, forPlanReplayerReload bool) (result string) // for example: Normalize('select /*+ use_index(t, primary) */ 1 from b where a = 1') => 'select /*+ use_index(t, primary) */ ? from b where a = ?' func NormalizeKeepHint(sql string) (result string) { d := digesterPool.Get().(*sqlDigester) - result = d.doNormalize(sql, errors.RedactLogEnable, true) + result = d.doNormalize(sql, RedactLogEnable, true) digesterPool.Put(d) return } @@ -162,7 +161,7 @@ func (d *sqlDigester) doDigestNormalized(normalized string) (digest *Digest) { } func (d *sqlDigester) doDigest(sql string) (digest *Digest) { - d.normalize(sql, errors.RedactLogEnable, false, false, false) + d.normalize(sql, RedactLogEnable, false, false, false) d.hasher.Write(d.buffer.Bytes()) d.buffer.Reset() digest = NewDigest(d.hasher.Sum(nil)) @@ -178,14 +177,14 @@ func (d *sqlDigester) doNormalize(sql string, redact string, keepHint bool) (res } func (d *sqlDigester) doNormalizeForBinding(sql string, keepHint bool, forPlanReplayerReload bool) (result string) { - d.normalize(sql, errors.RedactLogEnable, keepHint, true, forPlanReplayerReload) + d.normalize(sql, RedactLogEnable, keepHint, true, forPlanReplayerReload) result = d.buffer.String() d.buffer.Reset() return } func (d *sqlDigester) doNormalizeDigest(sql string) (normalized string, digest *Digest) { - d.normalize(sql, errors.RedactLogEnable, false, false, false) + d.normalize(sql, RedactLogEnable, false, false, false) normalized = d.buffer.String() d.hasher.Write(d.buffer.Bytes()) d.buffer.Reset() @@ -195,7 +194,7 @@ func (d *sqlDigester) doNormalizeDigest(sql string) (normalized string, digest * } func (d *sqlDigester) doNormalizeDigestForBinding(sql string) (normalized string, digest *Digest) { - d.normalize(sql, errors.RedactLogEnable, false, true, false) + d.normalize(sql, RedactLogEnable, false, true, false) normalized = d.buffer.String() d.hasher.Write(d.buffer.Bytes()) d.buffer.Reset() @@ -319,7 +318,7 @@ func (d *sqlDigester) reduceLit(currTok *token, redact string, forBinding bool, return } - if redact == errors.RedactLogMarker && !forBinding && !forPlanReplayer { + if redact == RedactLogMarker && !forBinding && !forPlanReplayer { switch currTok.lit { case "?", "*": return diff --git a/parser/parser_test.go b/parser/parser_test.go index b94d1d4..0cf0298 100644 --- a/parser/parser_test.go +++ b/parser/parser_test.go @@ -15,14 +15,15 @@ package parser_test import ( "bytes" + "errors" "fmt" + "reflect" "regexp" "runtime" "slices" "strings" "testing" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/ast" "github.com/sqlc-dev/marino/charset" . "github.com/sqlc-dev/marino/format" @@ -31,8 +32,6 @@ import ( "github.com/sqlc-dev/marino/parser" "github.com/sqlc-dev/marino/terror" "github.com/sqlc-dev/marino/test_driver" - - "reflect" ) func TestSimple(t *testing.T) { @@ -541,12 +540,12 @@ func RunTest(t *testing.T, table []testCase, enableWindowFunc bool, MariaDB bool _, _, err := p.Parse(tbl.src, "", "") if !tbl.ok { if err == nil { - t.Fatalf("source %v, error %v", tbl.src, errors.Trace(err)) + t.Fatalf("source %v, error %v", tbl.src, err) } continue } if err != nil { - t.Fatalf("%s: %v", fmt.Sprintf("source:\n%v\nerror:\n%v", tbl.src, errors.Trace(err)), err) + t.Fatalf("%s: %v", fmt.Sprintf("source:\n%v\nerror:\n%v", tbl.src, err), err) } // restore correctness test if tbl.ok { diff --git a/parser/redact.go b/parser/redact.go new file mode 100644 index 0000000..79df559 --- /dev/null +++ b/parser/redact.go @@ -0,0 +1,22 @@ +// 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 parser + +// Redact mode values accepted by Normalize. They control how literals are +// rewritten when normalizing a SQL statement. +const ( + RedactLogEnable = "ON" + RedactLogDisable = "OFF" + RedactLogMarker = "MARKER" +) diff --git a/parser/yy_parser.go b/parser/yy_parser.go index 25b32fc..b41df0e 100644 --- a/parser/yy_parser.go +++ b/parser/yy_parser.go @@ -21,7 +21,6 @@ import ( "strconv" "unicode" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/ast" "github.com/sqlc-dev/marino/auth" "github.com/sqlc-dev/marino/charset" @@ -198,7 +197,7 @@ func (parser *Parser) ParseSQL(sql string, params ...ParseParam) (stmt []ast.Stm warns = nil } if len(errs) != 0 { - return nil, warns, errors.Trace(errs[0]) + return nil, warns, errs[0] } for _, stmt := range parser.result { ast.SetFlag(stmt) @@ -221,7 +220,7 @@ func (parser *Parser) lastErrorAsWarn() { func (parser *Parser) ParseOneStmt(sql, charset, collation string) (ast.StmtNode, error) { stmts, _, err := parser.ParseSQL(sql, CharsetConnection(charset), CollationConnection(collation)) if err != nil { - return nil, errors.Trace(err) + return nil, err } if len(stmts) != 1 { return nil, ErrSyntax diff --git a/terror/error.go b/terror/error.go new file mode 100644 index 0000000..bb69bc6 --- /dev/null +++ b/terror/error.go @@ -0,0 +1,158 @@ +// 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 terror + +import ( + "errors" + "fmt" + "strconv" +) + +// ErrCodeText is a textual error code that represents a specific error type +// in an error class. +type ErrCodeText string + +// ErrorID is a textual identifier of an Error prototype. +type ErrorID string + +// RFCErrorCode is the textual error code in the form {Class}:{Code}. +type RFCErrorCode string + +// Error is the prototype of a class of errors. Use Normalize or +// ErrClass.New / ErrClass.NewStd to create one. +type Error struct { + code ErrCode + codeText ErrCodeText + message string + args []any +} + +// Code returns the numeric code of this error. +func (e *Error) Code() ErrCode { return e.code } + +// RFCCode returns the textual {Class}:{Code} identifier. +func (e *Error) RFCCode() RFCErrorCode { return RFCErrorCode(e.ID()) } + +// ID returns the unique identifier of this error. +func (e *Error) ID() ErrorID { + if e.codeText != "" { + return ErrorID(e.codeText) + } + return ErrorID(strconv.Itoa(int(e.code))) +} + +// Error implements the error interface. +func (e *Error) Error() string { + if e == nil { + return "" + } + return fmt.Sprintf("[%s]%s", e.RFCCode(), e.GetMsg()) +} + +// GetMsg returns the formatted message of this error. +func (e *Error) GetMsg() string { + if len(e.args) > 0 { + return fmt.Sprintf(e.message, e.args...) + } + return e.message +} + +// GenWithStack returns a copy of e with a new message format and arguments. +func (e *Error) GenWithStack(format string, args ...any) error { + err := *e + err.message = format + err.args = args + return &err +} + +// GenWithStackByArgs returns a copy of e with new arguments. +func (e *Error) GenWithStackByArgs(args ...any) error { + err := *e + err.args = args + return &err +} + +// FastGen returns a copy of e with a new message format and arguments. +func (e *Error) FastGen(format string, args ...any) error { + return e.GenWithStack(format, args...) +} + +// FastGenByArgs returns a copy of e with new arguments. +func (e *Error) FastGenByArgs(args ...any) error { + return e.GenWithStackByArgs(args...) +} + +// Is reports whether other is an Error with the same ID. Allows usage with +// errors.Is from the standard library. +func (e *Error) Is(other error) bool { + err, ok := other.(*Error) + if !ok { + return false + } + return (e == nil && err == nil) || (e != nil && err != nil && e.ID() == err.ID()) +} + +// Equal reports whether other is or wraps an Error with the same ID as e. +func (e *Error) Equal(other error) bool { + if other == nil { + return false + } + inner := cause(other) + if inner == nil { + return false + } + inErr, ok := inner.(*Error) + if !ok { + return false + } + return e.ID() == inErr.ID() +} + +// NotEqual is the inverse of Equal. +func (e *Error) NotEqual(other error) bool { return !e.Equal(other) } + +// NormalizeOption configures an Error created via Normalize. +type NormalizeOption func(*Error) + +// RFCCodeText sets the textual RFC code of the Error. +func RFCCodeText(s string) NormalizeOption { + return func(e *Error) { e.codeText = ErrCodeText(s) } +} + +// MySQLErrorCode sets the numeric MySQL error code of the Error. +func MySQLErrorCode(code int) NormalizeOption { + return func(e *Error) { e.code = ErrCode(code) } +} + +// Normalize creates a new Error prototype. +func Normalize(message string, opts ...NormalizeOption) *Error { + e := &Error{message: message} + for _, opt := range opts { + opt(e) + } + return e +} + +// cause walks the error chain via errors.Unwrap and returns the deepest +// non-nil error. +func cause(err error) error { + for err != nil { + next := errors.Unwrap(err) + if next == nil { + return err + } + err = next + } + return err +} diff --git a/terror/terror.go b/terror/terror.go index e96b35a..504ea53 100644 --- a/terror/terror.go +++ b/terror/terror.go @@ -23,7 +23,6 @@ import ( "sync" "sync/atomic" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/mysql" ) @@ -53,9 +52,6 @@ const ( // ErrClass represents a class of errors. type ErrClass int -// Error implements error interface. -type Error = errors.Error - // Error classes. var ( ClassAutoid = RegisterErrorClass(1, "autoid") @@ -145,7 +141,7 @@ func (ec ErrClass) String() string { // EqualClass returns true if err is *Error with the same class. func (ec ErrClass) EqualClass(err error) bool { - e := errors.Cause(err) + e := cause(err) if e == nil { return false } @@ -191,19 +187,14 @@ func (ec ErrClass) initError(code ErrCode) string { // Deprecated: use NewStd or NewStdErr instead. func (ec ErrClass) New(code ErrCode, message string) *Error { rfcCode := ec.initError(code) - err := errors.Normalize(message, errors.MySQLErrorCode(int(code)), errors.RFCCodeText(rfcCode)) - return err + return Normalize(message, MySQLErrorCode(int(code)), RFCCodeText(rfcCode)) } // NewStdErr defines an *Error with an error code, an error // message and workaround to create standard error. func (ec ErrClass) NewStdErr(code ErrCode, message *mysql.ErrMessage) *Error { rfcCode := ec.initError(code) - err := errors.Normalize( - message.Raw, errors.RedactArgs(message.RedactArgPos), - errors.MySQLErrorCode(int(code)), errors.RFCCodeText(rfcCode), - ) - return err + return Normalize(message.Raw, MySQLErrorCode(int(code)), RFCCodeText(rfcCode)) } // NewStd calls New using the standard message for the error code @@ -219,9 +210,9 @@ func (ec ErrClass) NewStd(code ErrCode) *Error { // so it's goroutine-safe // and often be used to create Error came from other systems like TiKV. func (ec ErrClass) Synthesize(code ErrCode, message string) *Error { - return errors.Normalize( - message, errors.MySQLErrorCode(int(code)), - errors.RFCCodeText(fmt.Sprintf("%s:%d", errClass2Desc[ec], code)), + return Normalize( + message, MySQLErrorCode(int(code)), + RFCCodeText(fmt.Sprintf("%s:%d", errClass2Desc[ec], code)), ) } @@ -275,8 +266,8 @@ func init() { // ErrorEqual returns a boolean indicating whether err1 is equal to err2. func ErrorEqual(err1, err2 error) bool { - e1 := errors.Cause(err1) - e2 := errors.Cause(err2) + e1 := cause(err1) + e2 := cause(err2) if e1 == e2 { return true diff --git a/terror/terror_test.go b/terror/terror_test.go index f7faea4..b0d7665 100644 --- a/terror/terror_test.go +++ b/terror/terror_test.go @@ -14,16 +14,10 @@ package terror import ( - "encoding/json" + "errors" "fmt" - "os" - "runtime" - "strings" - "testing" - - "github.com/pingcap/errors" - "reflect" + "testing" ) func TestErrCode(t *testing.T) { @@ -92,7 +86,7 @@ func TestTError(t *testing.T) { if !reflect.DeepEqual("[kv:1062]Duplicate entry '1' for key 'PRIMARY'", e.Error()) { t.Fatalf("got %v, want %v", e.Error(), "[kv:1062]Duplicate entry '1' for key 'PRIMARY'") } - sqlErr := ToSQLError(errors.Cause(e).(*Error)) + sqlErr := ToSQLError(cause(e).(*Error)) if !reflect.DeepEqual("Duplicate entry '1' for key 'PRIMARY'", sqlErr.Message) { t.Fatalf("got %v, want %v", sqlErr.Message, "Duplicate entry '1' for key 'PRIMARY'") } @@ -100,90 +94,31 @@ func TestTError(t *testing.T) { t.Fatalf("got %v, want %v", sqlErr.Code, uint16(1062)) } - err := errors.Trace(ErrCritical.GenWithStackByArgs("test")) - if !(ErrCritical.Equal(err)) { - t.Fatal("expected true") - } - - err = errors.Trace(ErrCritical) + err := ErrCritical.GenWithStackByArgs("test") if !(ErrCritical.Equal(err)) { t.Fatal("expected true") } -} -func TestJson(t *testing.T) { - prevTErr := errors.Normalize("json test", errors.MySQLErrorCode(int(CodeExecResultIsEmpty))) - buf, err := json.Marshal(prevTErr) - if err != nil { - t.Fatal(err) - } - var curTErr errors.Error - err = json.Unmarshal(buf, &curTErr) - if err != nil { - t.Fatal(err) - } - isEqual := prevTErr.Equal(&curTErr) - if !(isEqual) { + if !(ErrCritical.Equal(ErrCritical)) { t.Fatal("expected true") } } -var predefinedErr = ClassExecutor.New(ErrCode(123), "predefiend error") - -func example() error { - err := call() - return errors.Trace(err) -} - -func call() error { - return predefinedErr.GenWithStack("error message:%s", "abc") -} - func TestErrorEqual(t *testing.T) { e1 := errors.New("test error") if e1 == nil { t.Fatal("expected non-nil") } - e2 := errors.Trace(e1) - if e2 == nil { - t.Fatal("expected non-nil") - } - - e3 := errors.Trace(e2) - if e3 == nil { - t.Fatal("expected non-nil") - } - - if !reflect.DeepEqual(e1, errors.Cause(e2)) { - t.Fatalf("got %v, want %v", errors.Cause(e2), e1) - } - if !reflect.DeepEqual(e1, errors.Cause(e3)) { - t.Fatalf("got %v, want %v", errors.Cause(e3), e1) - } - if !reflect.DeepEqual(errors.Cause(e3), errors.Cause(e2)) { - t.Fatalf("got %v, want %v", errors.Cause(e2), errors.Cause(e3)) + if !reflect.DeepEqual(e1, cause(e1)) { + t.Fatalf("got %v, want %v", cause(e1), e1) } e4 := errors.New("test error") - if reflect.DeepEqual(e1, errors.Cause(e4)) { - t.Fatalf("expected values to differ, both are %v", errors.Cause(e4)) - } - - e5 := errors.Errorf("test error") - if reflect.DeepEqual(e1, errors.Cause(e5)) { - t.Fatalf("expected values to differ, both are %v", errors.Cause(e5)) - } - - if !(ErrorEqual(e1, e2)) { - t.Fatal("expected true") - } - if !(ErrorEqual(e1, e3)) { - t.Fatal("expected true") - } if !(ErrorEqual(e1, e4)) { t.Fatal("expected true") } + e5 := fmt.Errorf("test error") if !(ErrorEqual(e1, e5)) { t.Fatal("expected true") } @@ -213,48 +148,3 @@ func TestLog(t *testing.T) { err := fmt.Errorf("xxx") Log(err) } - -func TestTraceAndLocation(t *testing.T) { - err := example() - stack := errors.ErrorStack(err) - lines := strings.Split(stack, "\n") - goroot := strings.ReplaceAll(runtime.GOROOT(), string(os.PathSeparator), "/") - var sysStack = 0 - for _, line := range lines { - // When you run test case in the bazel. you will find the difference stack. It looks like this: - // - // ```go - // testing.tRunner - // GOROOT/src/testing/testing.go:1576 - // runtime.goexit - // src/runtime/asm_arm64.s:1172 - // ``` - // - // but run with ```go test```. It looks like this: - // - // ```go - // testing.tRunner - // /Users/pingcap/.gvm/gos/go1.20.1/src/testing/testing.go:1576 - // runtime.goexit - // /Users/pingcap/.gvm/gos/go1.20.1/src/runtime/asm_arm64.s:1172 - // ``` - // - // So we have to deal with these boundary conditions. - if strings.Contains(line, goroot) || strings.Contains(line, "src/runtime") { - sysStack++ - } - } - if !reflect.DeepEqual(9, len(lines)-(2*sysStack)) { - t.Fatalf("%s: got %v, want %v", fmt.Sprintf("stack =\n%s", stack), len(lines)-(2*sysStack), 9) - } - var containTerr bool - for _, v := range lines { - if strings.Contains(v, "terror_test.go") { - containTerr = true - break - } - } - if !(containTerr) { - t.Fatal("expected true") - } -} diff --git a/test_driver/test_driver_datum.go b/test_driver/test_driver_datum.go index 950a347..57e3ab8 100644 --- a/test_driver/test_driver_datum.go +++ b/test_driver/test_driver_datum.go @@ -23,7 +23,6 @@ import ( "strconv" "strings" - "github.com/pingcap/errors" "github.com/sqlc-dev/marino/charset" "github.com/sqlc-dev/marino/mysql" "github.com/sqlc-dev/marino/types" @@ -320,7 +319,7 @@ func (b BinaryLiteral) ToBitLiteralString(trimLeadingZero bool) string { // See https://dev.mysql.com/doc/refman/5.7/en/bit-value-literals.html func ParseBitStr(s string) (BinaryLiteral, error) { if len(s) == 0 { - return nil, errors.Errorf("invalid empty string for parsing bit type") + return nil, fmt.Errorf("invalid empty string for parsing bit type") } if s[0] == 'b' || s[0] == 'B' { @@ -330,7 +329,7 @@ func ParseBitStr(s string) (BinaryLiteral, error) { s = s[2:] } else { // here means format is not b'val', B'val' or 0bval. - return nil, errors.Errorf("invalid bit type format %s", s) + return nil, fmt.Errorf("invalid bit type format %s", s) } if len(s) == 0 { @@ -346,7 +345,7 @@ func ParseBitStr(s string) (BinaryLiteral, error) { strPosition := i << 3 val, err := strconv.ParseUint(s[strPosition:strPosition+8], 2, 8) if err != nil { - return nil, errors.Trace(err) + return nil, err } buf[i] = byte(val) } @@ -372,20 +371,20 @@ func (b BitLiteral) ToString() string { // See https://dev.mysql.com/doc/refman/5.7/en/hexadecimal-literals.html func ParseHexStr(s string) (BinaryLiteral, error) { if len(s) == 0 { - return nil, errors.Errorf("invalid empty string for parsing hexadecimal literal") + return nil, fmt.Errorf("invalid empty string for parsing hexadecimal literal") } if s[0] == 'x' || s[0] == 'X' { // format is x'val' or X'val' s = strings.Trim(s[1:], "'") if len(s)%2 != 0 { - return nil, errors.Errorf("invalid hexadecimal format, must even numbers, but %d", len(s)) + return nil, fmt.Errorf("invalid hexadecimal format, must even numbers, but %d", len(s)) } } else if strings.HasPrefix(s, "0x") { s = s[2:] } else { // here means format is not x'val', X'val' or 0xval. - return nil, errors.Errorf("invalid hexadecimal format %s", s) + return nil, fmt.Errorf("invalid hexadecimal format %s", s) } if len(s) == 0 { @@ -397,7 +396,7 @@ func ParseHexStr(s string) (BinaryLiteral, error) { } buf, err := hex.DecodeString(s) if err != nil { - return nil, errors.Trace(err) + return nil, err } return buf, nil } From 437e64678ce0778c10e8ffc5ffabb2530ebb394b Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 26 Apr 2026 21:28:29 +0000 Subject: [PATCH 2/2] Drop trivial doc comments on Error methods --- terror/error.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/terror/error.go b/terror/error.go index bb69bc6..8e70838 100644 --- a/terror/error.go +++ b/terror/error.go @@ -38,10 +38,8 @@ type Error struct { args []any } -// Code returns the numeric code of this error. func (e *Error) Code() ErrCode { return e.code } -// RFCCode returns the textual {Class}:{Code} identifier. func (e *Error) RFCCode() RFCErrorCode { return RFCErrorCode(e.ID()) } // ID returns the unique identifier of this error. @@ -52,7 +50,6 @@ func (e *Error) ID() ErrorID { return ErrorID(strconv.Itoa(int(e.code))) } -// Error implements the error interface. func (e *Error) Error() string { if e == nil { return "" @@ -60,7 +57,6 @@ func (e *Error) Error() string { return fmt.Sprintf("[%s]%s", e.RFCCode(), e.GetMsg()) } -// GetMsg returns the formatted message of this error. func (e *Error) GetMsg() string { if len(e.args) > 0 { return fmt.Sprintf(e.message, e.args...)