Skip to content

Commit

Permalink
sql: remove eval.Context.Ctx()
Browse files Browse the repository at this point in the history
Release note: None
  • Loading branch information
yuzefovich committed Oct 2, 2022
1 parent 4d03c1f commit 046f912
Show file tree
Hide file tree
Showing 33 changed files with 256 additions and 216 deletions.
2 changes: 1 addition & 1 deletion pkg/ccl/changefeedccl/cdceval/expr_eval.go
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ func (e *exprEval) evalProjection(
if err != nil {
return cdcevent.Row{}, err
}
if err := e.projection.SetValueDatumAt(e.evalCtx, i, d); err != nil {
if err := e.projection.SetValueDatumAt(ctx, e.evalCtx, i, d); err != nil {
return cdcevent.Row{}, err
}
}
Expand Down
8 changes: 4 additions & 4 deletions pkg/ccl/changefeedccl/cdcevent/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -557,7 +557,7 @@ func TestingGetFamilyIDFromKey(
// MakeRowFromTuple converts a SQL datum produced by, for example, SELECT ROW(foo.*),
// into the same kind of cdcevent.Row you'd get as a result of an insert, but without
// the primary key.
func MakeRowFromTuple(evalCtx *eval.Context, t *tree.DTuple) Row {
func MakeRowFromTuple(ctx context.Context, evalCtx *eval.Context, t *tree.DTuple) Row {
r := Projection{EventDescriptor: &EventDescriptor{}}
names := t.ResolvedType().TupleLabels()
for i, d := range t.D {
Expand All @@ -568,10 +568,10 @@ func MakeRowFromTuple(evalCtx *eval.Context, t *tree.DTuple) Row {
name = names[i]
}
r.AddValueColumn(name, d.ResolvedType())
if err := r.SetValueDatumAt(evalCtx, i, d); err != nil {
if err := r.SetValueDatumAt(ctx, evalCtx, i, d); err != nil {
if build.IsRelease() {
log.Warningf(context.Background(), "failed to set row value from tuple due to error %v", err)
_ = r.SetValueDatumAt(evalCtx, i, tree.DNull)
log.Warningf(ctx, "failed to set row value from tuple due to error %v", err)
_ = r.SetValueDatumAt(ctx, evalCtx, i, tree.DNull)
} else {
panic(err)
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/ccl/changefeedccl/cdcevent/event_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,7 @@ func TestMakeRowFromTuple(t *testing.T) {
st := cluster.MakeTestingClusterSettings()
evalCtx := eval.MakeTestingEvalContext(st)

rowFromUnlabeledTuple := MakeRowFromTuple(&evalCtx, unlabeledTuple)
rowFromUnlabeledTuple := MakeRowFromTuple(context.Background(), &evalCtx, unlabeledTuple)
expectedCols := []struct {
name string
typ *types.T
Expand Down Expand Up @@ -446,7 +446,7 @@ func TestMakeRowFromTuple(t *testing.T) {

remainingCols = expectedCols

rowFromLabeledTuple := MakeRowFromTuple(&evalCtx, labeledTuple)
rowFromLabeledTuple := MakeRowFromTuple(context.Background(), &evalCtx, labeledTuple)

require.NoError(t, rowFromLabeledTuple.ForEachColumn().Datum(func(d tree.Datum, col ResultColumn) error {
current := remainingCols[0]
Expand Down
8 changes: 6 additions & 2 deletions pkg/ccl/changefeedccl/cdcevent/projection.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
package cdcevent

import (
"context"

"github.com/cockroachdb/cockroach/pkg/sql/catalog/colinfo"
"github.com/cockroachdb/cockroach/pkg/sql/pgwire/pgcode"
"github.com/cockroachdb/cockroach/pkg/sql/pgwire/pgerror"
Expand Down Expand Up @@ -66,7 +68,9 @@ func (p *Projection) AddValueColumn(name string, typ *types.T) {
}

// SetValueDatumAt sets value datum at specified position.
func (p *Projection) SetValueDatumAt(evalCtx *eval.Context, pos int, d tree.Datum) error {
func (p *Projection) SetValueDatumAt(
ctx context.Context, evalCtx *eval.Context, pos int, d tree.Datum,
) error {
pos += len(p.keyCols)
if pos >= len(p.datums) {
return errors.AssertionFailedf("%d out of bounds", pos)
Expand All @@ -78,7 +82,7 @@ func (p *Projection) SetValueDatumAt(evalCtx *eval.Context, pos int, d tree.Datu
return pgerror.Newf(pgcode.DatatypeMismatch,
"expected type %s for column %s@%d, found %s", col.Typ, col.Name, pos, d.ResolvedType())
}
cd, err := eval.PerformCast(evalCtx, d, col.Typ)
cd, err := eval.PerformCast(ctx, evalCtx, d, col.Typ)
if err != nil {
return errors.Wrapf(err, "expected type %s for column %s@%d, found %s",
col.Typ, col.Name, pos, d.ResolvedType())
Expand Down
13 changes: 7 additions & 6 deletions pkg/ccl/changefeedccl/cdcevent/projection_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ func TestProjection(t *testing.T) {
defer leaktest.AfterTest(t)()
defer log.Scope(t).Close(t)

ctx := context.Background()
s, db, _ := serverutils.StartServer(t, base.TestServerArgs{})
defer s.Stopper().Stop(context.Background())
defer s.Stopper().Stop(ctx)

sqlDB := sqlutils.MakeSQLRunner(db)
sqlDB.Exec(t, `CREATE TYPE status AS ENUM ('open', 'closed', 'inactive')`)
Expand Down Expand Up @@ -61,7 +62,7 @@ CREATE TABLE foo (
idx := 0
require.NoError(t, input.ForEachColumn().Datum(func(d tree.Datum, col ResultColumn) error {
p.AddValueColumn(col.Name, col.Typ)
err := p.SetValueDatumAt(&evalCtx, idx, d)
err := p.SetValueDatumAt(ctx, &evalCtx, idx, d)
idx++
return err
}))
Expand All @@ -76,9 +77,9 @@ CREATE TABLE foo (
input := TestingMakeEventRow(desc, 0, encDatums, false)
p := MakeProjection(input.EventDescriptor)
p.AddValueColumn("wrong_type", types.Int)
require.Regexp(t, "expected type int", p.SetValueDatumAt(&evalCtx, 0, tree.NewDString("fail")))
require.Regexp(t, "expected type int", p.SetValueDatumAt(ctx, &evalCtx, 0, tree.NewDString("fail")))
// But we allow NULL.
require.NoError(t, p.SetValueDatumAt(&evalCtx, 0, tree.DNull))
require.NoError(t, p.SetValueDatumAt(ctx, &evalCtx, 0, tree.DNull))
})

t.Run("project_extra_column", func(t *testing.T) {
Expand All @@ -87,12 +88,12 @@ CREATE TABLE foo (
idx := 0
require.NoError(t, input.ForEachColumn().Datum(func(d tree.Datum, col ResultColumn) error {
p.AddValueColumn(col.Name, col.Typ)
err := p.SetValueDatumAt(&evalCtx, idx, d)
err := p.SetValueDatumAt(ctx, &evalCtx, idx, d)
idx++
return err
}))
p.AddValueColumn("test", types.Int)
require.NoError(t, p.SetValueDatumAt(&evalCtx, idx, tree.NewDInt(5)))
require.NoError(t, p.SetValueDatumAt(ctx, &evalCtx, idx, tree.NewDInt(5)))

pr, err := p.Project(input)
require.NoError(t, err)
Expand Down
2 changes: 1 addition & 1 deletion pkg/ccl/changefeedccl/encoder_json.go
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@ func init() {
Types: tree.VariadicType{FixedTypes: []*types.T{types.AnyTuple}, VarType: types.String},
ReturnType: tree.FixedReturnType(types.Bytes),
Fn: func(ctx context.Context, evalCtx *eval.Context, args tree.Datums) (tree.Datum, error) {
row := cdcevent.MakeRowFromTuple(evalCtx, tree.MustBeDTuple(args[0]))
row := cdcevent.MakeRowFromTuple(ctx, evalCtx, tree.MustBeDTuple(args[0]))
flags := make([]string, len(args)-1)
for i, d := range args[1:] {
flags[i] = string(tree.MustBeDString(d))
Expand Down
Loading

0 comments on commit 046f912

Please sign in to comment.