diff --git a/pkg/datasource/sql/exec/at/at_executor.go b/pkg/datasource/sql/exec/at/at_executor.go index 95874b65f..adf39eaf6 100644 --- a/pkg/datasource/sql/exec/at/at_executor.go +++ b/pkg/datasource/sql/exec/at/at_executor.go @@ -29,23 +29,23 @@ import ( ) func Init() { - exec.RegisterATExecutor(types.DBTypeMySQL, func() exec.SQLExecutor { return &AtExecutor{} }) + exec.RegisterATExecutor(types.DBTypeMySQL, func() exec.SQLExecutor { return &ATExecutor{} }) } type executor interface { ExecContext(ctx context.Context, f exec.CallbackWithNamedValue) (types.ExecResult, error) } -type AtExecutor struct { +type ATExecutor struct { hooks []exec.SQLHook } -func (e *AtExecutor) Interceptors(hooks []exec.SQLHook) { +func (e *ATExecutor) Interceptors(hooks []exec.SQLHook) { e.hooks = hooks } // ExecWithNamedValue -func (e *AtExecutor) ExecWithNamedValue(ctx context.Context, execCtx *types.ExecContext, f exec.CallbackWithNamedValue) (types.ExecResult, error) { +func (e *ATExecutor) ExecWithNamedValue(ctx context.Context, execCtx *types.ExecContext, f exec.CallbackWithNamedValue) (types.ExecResult, error) { parser, err := parser.DoParser(execCtx.Query) if err != nil { return nil, err @@ -75,7 +75,7 @@ func (e *AtExecutor) ExecWithNamedValue(ctx context.Context, execCtx *types.Exec } // ExecWithValue -func (e *AtExecutor) ExecWithValue(ctx context.Context, execCtx *types.ExecContext, f exec.CallbackWithNamedValue) (types.ExecResult, error) { +func (e *ATExecutor) ExecWithValue(ctx context.Context, execCtx *types.ExecContext, f exec.CallbackWithNamedValue) (types.ExecResult, error) { execCtx.NamedValues = util.ValueToNamedValue(execCtx.Values) return e.ExecWithNamedValue(ctx, execCtx, f) } diff --git a/pkg/datasource/sql/exec/at/base_executor.go b/pkg/datasource/sql/exec/at/base_executor.go index fe0a0dcfb..bdbf8360c 100644 --- a/pkg/datasource/sql/exec/at/base_executor.go +++ b/pkg/datasource/sql/exec/at/base_executor.go @@ -50,7 +50,7 @@ func (b *baseExecutor) afterHooks(ctx context.Context, execCtx *types.ExecContex } } -// GetScanSlice get the column type for scann +// GetScanSlice get the column type for scan // todo to use ColumnInfo get slice func (*baseExecutor) GetScanSlice(columnNames []string, tableMeta *types.TableMeta) []interface{} { scanSlice := make([]interface{}, 0, len(columnNames)) diff --git a/pkg/datasource/sql/exec/at/delete_executor.go b/pkg/datasource/sql/exec/at/delete_executor.go index 9179acb72..b32cadfe6 100644 --- a/pkg/datasource/sql/exec/at/delete_executor.go +++ b/pkg/datasource/sql/exec/at/delete_executor.go @@ -37,19 +37,19 @@ import ( type deleteExecutor struct { baseExecutor parserCtx *types.ParseContext - execContent *types.ExecContext + execContext *types.ExecContext } // NewDeleteExecutor get delete executor func NewDeleteExecutor(parserCtx *types.ParseContext, execContent *types.ExecContext, hooks []exec.SQLHook) executor { - return &deleteExecutor{parserCtx: parserCtx, execContent: execContent, baseExecutor: baseExecutor{hooks: hooks}} + return &deleteExecutor{parserCtx: parserCtx, execContext: execContent, baseExecutor: baseExecutor{hooks: hooks}} } // ExecContext exec SQL, and generate before image and after image func (d deleteExecutor) ExecContext(ctx context.Context, f exec.CallbackWithNamedValue) (types.ExecResult, error) { - d.beforeHooks(ctx, d.execContent) + d.beforeHooks(ctx, d.execContext) defer func() { - d.afterHooks(ctx, d.execContent) + d.afterHooks(ctx, d.execContext) }() beforeImage, err := d.beforeImage(ctx) @@ -57,7 +57,7 @@ func (d deleteExecutor) ExecContext(ctx context.Context, f exec.CallbackWithName return nil, err } - res, err := f(ctx, d.execContent.Query, d.execContent.NamedValues) + res, err := f(ctx, d.execContext.Query, d.execContext.NamedValues) if err != nil { return nil, err } @@ -67,23 +67,23 @@ func (d deleteExecutor) ExecContext(ctx context.Context, f exec.CallbackWithName return nil, err } - d.execContent.TxCtx.RoundImages.AppendBeofreImage(beforeImage) - d.execContent.TxCtx.RoundImages.AppendAfterImage(afterImage) + d.execContext.TxCtx.RoundImages.AppendBeofreImage(beforeImage) + d.execContext.TxCtx.RoundImages.AppendAfterImage(afterImage) return res, nil } // beforeImage build before image func (d *deleteExecutor) beforeImage(ctx context.Context) (*types.RecordImage, error) { - selectSQL, selectArgs, err := d.buildBeforeImageSQL(d.execContent.Query, d.execContent.NamedValues) + selectSQL, selectArgs, err := d.buildBeforeImageSQL(d.execContext.Query, d.execContext.NamedValues) if err != nil { return nil, err } var rowsi driver.Rows - queryerCtx, ok := d.execContent.Conn.(driver.QueryerContext) + queryerCtx, ok := d.execContext.Conn.(driver.QueryerContext) var queryer driver.Queryer if !ok { - queryer, ok = d.execContent.Conn.(driver.Queryer) + queryer, ok = d.execContext.Conn.(driver.Queryer) } if ok { rowsi, err = util.CtxDriverQuery(ctx, queryerCtx, queryer, selectSQL, selectArgs) @@ -102,7 +102,7 @@ func (d *deleteExecutor) beforeImage(ctx context.Context) (*types.RecordImage, e } tableName, _ := d.parserCtx.GteTableName() - metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, d.execContent.DBName, tableName) + metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, d.execContext.DBName, tableName) if err != nil { return nil, err } @@ -115,7 +115,7 @@ func (d *deleteExecutor) beforeImage(ctx context.Context) (*types.RecordImage, e image.TableMeta = metaData lockKey := d.buildLockKey(image, *metaData) - d.execContent.TxCtx.LockKeys[lockKey] = struct{}{} + d.execContext.TxCtx.LockKeys[lockKey] = struct{}{} return image, nil } @@ -156,7 +156,7 @@ func (d *deleteExecutor) buildBeforeImageSQL(query string, args []driver.NamedVa // afterImage build after image func (d *deleteExecutor) afterImage(ctx context.Context) (*types.RecordImage, error) { tableName, _ := d.parserCtx.GteTableName() - metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, d.execContent.DBName, tableName) + metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, d.execContext.DBName, tableName) if err != nil { return nil, err } diff --git a/pkg/datasource/sql/exec/at/insert_executor.go b/pkg/datasource/sql/exec/at/insert_executor.go index 74434a67c..8cc26d6a9 100644 --- a/pkg/datasource/sql/exec/at/insert_executor.go +++ b/pkg/datasource/sql/exec/at/insert_executor.go @@ -39,7 +39,7 @@ const ( type insertExecutor struct { baseExecutor parserCtx *types.ParseContext - execContent *types.ExecContext + execContext *types.ExecContext incrementStep int // businesSQLResult after insert sql businesSQLResult types.ExecResult @@ -47,13 +47,13 @@ type insertExecutor struct { // NewInsertExecutor get insert executor func NewInsertExecutor(parserCtx *types.ParseContext, execContent *types.ExecContext, hooks []exec.SQLHook) executor { - return &insertExecutor{parserCtx: parserCtx, execContent: execContent, baseExecutor: baseExecutor{hooks: hooks}} + return &insertExecutor{parserCtx: parserCtx, execContext: execContent, baseExecutor: baseExecutor{hooks: hooks}} } func (i *insertExecutor) ExecContext(ctx context.Context, f exec.CallbackWithNamedValue) (types.ExecResult, error) { - i.beforeHooks(ctx, i.execContent) + i.beforeHooks(ctx, i.execContext) defer func() { - i.afterHooks(ctx, i.execContent) + i.afterHooks(ctx, i.execContext) }() beforeImage, err := i.beforeImage(ctx) @@ -61,7 +61,7 @@ func (i *insertExecutor) ExecContext(ctx context.Context, f exec.CallbackWithNam return nil, err } - res, err := f(ctx, i.execContent.Query, i.execContent.NamedValues) + res, err := f(ctx, i.execContext.Query, i.execContext.NamedValues) if err != nil { return nil, err } @@ -75,15 +75,15 @@ func (i *insertExecutor) ExecContext(ctx context.Context, f exec.CallbackWithNam return nil, err } - i.execContent.TxCtx.RoundImages.AppendBeofreImage(beforeImage) - i.execContent.TxCtx.RoundImages.AppendAfterImage(afterImage) + i.execContext.TxCtx.RoundImages.AppendBeofreImage(beforeImage) + i.execContext.TxCtx.RoundImages.AppendAfterImage(afterImage) return res, nil } // beforeImage build before image func (i *insertExecutor) beforeImage(ctx context.Context) (*types.RecordImage, error) { tableName, _ := i.parserCtx.GteTableName() - metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, i.execContent.DBName, tableName) + metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, i.execContext.DBName, tableName) if err != nil { return nil, err } @@ -97,7 +97,7 @@ func (i *insertExecutor) afterImage(ctx context.Context) (*types.RecordImage, er } tableName, _ := i.parserCtx.GteTableName() - metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, i.execContent.DBName, tableName) + metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, i.execContext.DBName, tableName) if err != nil { return nil, err } @@ -107,10 +107,10 @@ func (i *insertExecutor) afterImage(ctx context.Context) (*types.RecordImage, er } var rowsi driver.Rows - queryerCtx, ok := i.execContent.Conn.(driver.QueryerContext) + queryerCtx, ok := i.execContext.Conn.(driver.QueryerContext) var queryer driver.Queryer if !ok { - queryer, ok = i.execContent.Conn.(driver.Queryer) + queryer, ok = i.execContext.Conn.(driver.Queryer) } if ok { rowsi, err = util.CtxDriverQuery(ctx, queryerCtx, queryer, selectSQL, selectArgs) @@ -134,7 +134,7 @@ func (i *insertExecutor) afterImage(ctx context.Context) (*types.RecordImage, er } lockKey := i.buildLockKey(image, *metaData) - i.execContent.TxCtx.LockKeys[lockKey] = struct{}{} + i.execContext.TxCtx.LockKeys[lockKey] = struct{}{} return image, nil } @@ -143,11 +143,11 @@ func (i *insertExecutor) buildAfterImageSQL(ctx context.Context) (string, []driv // get all pk value tableName, _ := i.parserCtx.GteTableName() - meta, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, i.execContent.DBName, tableName) + meta, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, i.execContext.DBName, tableName) if err != nil { return "", nil, err } - pkValuesMap, err := i.getPkValues(ctx, i.execContent, i.parserCtx, *meta) + pkValuesMap, err := i.getPkValues(ctx, i.execContext, i.parserCtx, *meta) if err != nil { return "", nil, err } @@ -415,7 +415,7 @@ func (i *insertExecutor) getPkValuesByColumn(ctx context.Context, execCtx *types return nil, nil } tableName, _ := i.parserCtx.GteTableName() - meta, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, i.execContent.DBName, tableName) + meta, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, i.execContext.DBName, tableName) if err != nil { return nil, err } @@ -453,7 +453,7 @@ func (i *insertExecutor) getPkValuesByAuto(ctx context.Context, execCtx *types.E return nil, nil } tableName, _ := i.parserCtx.GteTableName() - metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, i.execContent.DBName, tableName) + metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, i.execContext.DBName, tableName) if err != nil { return nil, err } diff --git a/pkg/datasource/sql/exec/at/plain_executor.go b/pkg/datasource/sql/exec/at/plain_executor.go index 36d0bca87..8d4b2f04f 100644 --- a/pkg/datasource/sql/exec/at/plain_executor.go +++ b/pkg/datasource/sql/exec/at/plain_executor.go @@ -25,14 +25,14 @@ import ( ) type plainExecutor struct { - parserCtx *types.ParseContext - execCtx *types.ExecContext + parserCtx *types.ParseContext + execContext *types.ExecContext } func NewPlainExecutor(parserCtx *types.ParseContext, execCtx *types.ExecContext) executor { - return &plainExecutor{parserCtx: parserCtx, execCtx: execCtx} + return &plainExecutor{parserCtx: parserCtx, execContext: execCtx} } func (u *plainExecutor) ExecContext(ctx context.Context, f exec.CallbackWithNamedValue) (types.ExecResult, error) { - return f(ctx, u.execCtx.Query, u.execCtx.NamedValues) + return f(ctx, u.execContext.Query, u.execContext.NamedValues) } diff --git a/pkg/datasource/sql/exec/at/plain_executor_test.go b/pkg/datasource/sql/exec/at/plain_executor_test.go index ba4878cca..cecc8c09e 100644 --- a/pkg/datasource/sql/exec/at/plain_executor_test.go +++ b/pkg/datasource/sql/exec/at/plain_executor_test.go @@ -62,7 +62,7 @@ func TestPlainExecutor_ExecContext(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - u := &plainExecutor{execCtx: &types.ExecContext{}} + u := &plainExecutor{execContext: &types.ExecContext{}} val, err := u.ExecContext(context.Background(), tt.f) assert.Equalf(t, tt.wantVal, val, "") assert.Equalf(t, tt.wantErr, err, "") diff --git a/pkg/datasource/sql/exec/at/update_executor.go b/pkg/datasource/sql/exec/at/update_executor.go index 645a7f474..b772dd8c9 100644 --- a/pkg/datasource/sql/exec/at/update_executor.go +++ b/pkg/datasource/sql/exec/at/update_executor.go @@ -43,19 +43,19 @@ var ( type updateExecutor struct { baseExecutor parserCtx *types.ParseContext - execContent *types.ExecContext + execContext *types.ExecContext } // NewUpdateExecutor get update executor func NewUpdateExecutor(parserCtx *types.ParseContext, execContent *types.ExecContext, hooks []exec.SQLHook) executor { - return &updateExecutor{parserCtx: parserCtx, execContent: execContent, baseExecutor: baseExecutor{hooks: hooks}} + return &updateExecutor{parserCtx: parserCtx, execContext: execContent, baseExecutor: baseExecutor{hooks: hooks}} } // ExecContext exec SQL, and generate before image and after image func (u *updateExecutor) ExecContext(ctx context.Context, f exec.CallbackWithNamedValue) (types.ExecResult, error) { - u.beforeHooks(ctx, u.execContent) + u.beforeHooks(ctx, u.execContext) defer func() { - u.afterHooks(ctx, u.execContent) + u.afterHooks(ctx, u.execContext) }() beforeImage, err := u.beforeImage(ctx) @@ -63,7 +63,7 @@ func (u *updateExecutor) ExecContext(ctx context.Context, f exec.CallbackWithNam return nil, err } - res, err := f(ctx, u.execContent.Query, u.execContent.NamedValues) + res, err := f(ctx, u.execContext.Query, u.execContext.NamedValues) if err != nil { return nil, err } @@ -77,8 +77,8 @@ func (u *updateExecutor) ExecContext(ctx context.Context, f exec.CallbackWithNam return nil, fmt.Errorf("Before image size is not equaled to after image size, probably because you updated the primary keys.") } - u.execContent.TxCtx.RoundImages.AppendBeofreImage(beforeImage) - u.execContent.TxCtx.RoundImages.AppendAfterImage(afterImage) + u.execContext.TxCtx.RoundImages.AppendBeofreImage(beforeImage) + u.execContext.TxCtx.RoundImages.AppendAfterImage(afterImage) return res, nil } @@ -89,22 +89,22 @@ func (u *updateExecutor) beforeImage(ctx context.Context) (*types.RecordImage, e return nil, nil } - selectSQL, selectArgs, err := u.buildBeforeImageSQL(ctx, u.execContent.NamedValues) + selectSQL, selectArgs, err := u.buildBeforeImageSQL(ctx, u.execContext.NamedValues) if err != nil { return nil, err } tableName, _ := u.parserCtx.GteTableName() - metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, u.execContent.DBName, tableName) + metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, u.execContext.DBName, tableName) if err != nil { return nil, err } var rowsi driver.Rows - queryerCtx, ok := u.execContent.Conn.(driver.QueryerContext) + queryerCtx, ok := u.execContext.Conn.(driver.QueryerContext) var queryer driver.Queryer if !ok { - queryer, ok = u.execContent.Conn.(driver.Queryer) + queryer, ok = u.execContext.Conn.(driver.Queryer) } if ok { rowsi, err = util.CtxDriverQuery(ctx, queryerCtx, queryer, selectSQL, selectArgs) @@ -128,7 +128,7 @@ func (u *updateExecutor) beforeImage(ctx context.Context) (*types.RecordImage, e } lockKey := u.buildLockKey(image, *metaData) - u.execContent.TxCtx.LockKeys[lockKey] = struct{}{} + u.execContext.TxCtx.LockKeys[lockKey] = struct{}{} image.SQLType = u.parserCtx.SQLType return image, nil @@ -144,17 +144,17 @@ func (u *updateExecutor) afterImage(ctx context.Context, beforeImage types.Recor } tableName, _ := u.parserCtx.GteTableName() - metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, u.execContent.DBName, tableName) + metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, u.execContext.DBName, tableName) if err != nil { return nil, err } selectSQL, selectArgs := u.buildAfterImageSQL(beforeImage, metaData) var rowsi driver.Rows - queryerCtx, ok := u.execContent.Conn.(driver.QueryerContext) + queryerCtx, ok := u.execContext.Conn.(driver.QueryerContext) var queryer driver.Queryer if !ok { - queryer, ok = u.execContent.Conn.(driver.Queryer) + queryer, ok = u.execContext.Conn.(driver.Queryer) } if ok { rowsi, err = util.CtxDriverQuery(ctx, queryerCtx, queryer, selectSQL, selectArgs) @@ -231,7 +231,7 @@ func (u *updateExecutor) buildBeforeImageSQL(ctx context.Context, args []driver. // select indexes columns tableName, _ := u.parserCtx.GteTableName() - metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, u.execContent.DBName, tableName) + metaData, err := datasource.GetTableCache(types.DBTypeMySQL).GetTableMeta(ctx, u.execContext.DBName, tableName) if err != nil { return "", nil, err }