Skip to content

Commit 707f860

Browse files
authored
util/rowcodec,tablecodec: remove stmtctx dependency from rowcodec and tablecodec (#48816)
close #48751
1 parent 3543275 commit 707f860

30 files changed

+180
-146
lines changed

pkg/ddl/column.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -1384,7 +1384,8 @@ func (w *updateColumnWorker) getRowRecord(handle kv.Handle, recordKey []byte, ra
13841384
}
13851385
checksums := w.calcChecksums()
13861386
sctx, rd := w.sessCtx.GetSessionVars().StmtCtx, &w.sessCtx.GetSessionVars().RowEncoder
1387-
newRowVal, err := tablecodec.EncodeRow(sctx, newRow, newColumnIDs, nil, nil, rd, checksums...)
1387+
newRowVal, err := tablecodec.EncodeRow(sctx.TimeZone(), newRow, newColumnIDs, nil, nil, rd, checksums...)
1388+
err = sctx.HandleError(err)
13881389
if err != nil {
13891390
return errors.Trace(err)
13901391
}

pkg/errctx/BUILD.bazel

+1
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,6 @@ go_test(
2222
"//pkg/types",
2323
"@com_github_pingcap_errors//:errors",
2424
"@com_github_stretchr_testify//require",
25+
"@org_uber_go_multierr//:multierr",
2526
],
2627
)

pkg/errctx/context.go

+20
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,27 @@ func (ctx *Context) appendWarning(err error) {
6868
}
6969

7070
// HandleError handles the error according to the context. See the comment of `HandleErrorWithAlias` for detailed logic.
71+
//
72+
// It also allows using `errors.ErrorGroup`, in this case, it'll handle each error in order, and return the first error
73+
// it founds.
7174
func (ctx *Context) HandleError(err error) error {
75+
// The function of handling `errors.ErrorGroup` is placed in `HandleError` but not in `HandleErrorWithAlias`, because
76+
// it's hard to give a proper error and warn alias for an error group.
77+
if errs, ok := err.(errors.ErrorGroup); ok {
78+
for _, singleErr := range errs.Errors() {
79+
singleErr = ctx.HandleError(singleErr)
80+
// If the one error is found, just return it.
81+
// TODO: consider whether it's more appropriate to continue to handle other errors. For example, other errors
82+
// may need to append warnings. The current behavior is same with TiDB original behavior before using
83+
// `errctx` to handle multiple errors.
84+
if singleErr != nil {
85+
return singleErr
86+
}
87+
}
88+
89+
return nil
90+
}
91+
7292
return ctx.HandleErrorWithAlias(err, err, err)
7393
}
7494

pkg/errctx/context_test.go

+10
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/pingcap/tidb/pkg/errctx"
2222
"github.com/pingcap/tidb/pkg/types"
2323
"github.com/stretchr/testify/require"
24+
"go.uber.org/multierr"
2425
)
2526

2627
func TestContext(t *testing.T) {
@@ -50,4 +51,13 @@ func TestContext(t *testing.T) {
5051
require.Equal(t, warn, testWarn)
5152
// newCtx2 will return all errors
5253
require.Equal(t, newCtx2.HandleErrorWithAlias(testInternalErr, testErr, testWarn), testErr)
54+
55+
// test `multierr`
56+
testErrs := multierr.Append(testInternalErr, testErr)
57+
require.Equal(t, ctx.HandleError(testErrs), testInternalErr)
58+
require.Equal(t, newCtx.HandleError(testErrs), testErr)
59+
require.Equal(t, warn, testInternalErr)
60+
61+
// test nil
62+
require.Nil(t, ctx.HandleError(nil))
5363
}

pkg/executor/mem_reader.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,9 @@ func buildMemTableReader(ctx context.Context, us *UnionScanExec, kvRanges []kv.K
252252
if err != nil {
253253
return nil, err
254254
}
255-
return tablecodec.EncodeValue(us.Ctx().GetSessionVars().StmtCtx, nil, d)
255+
sctx := us.Ctx().GetSessionVars().StmtCtx
256+
buf, err := tablecodec.EncodeValue(sctx.TimeZone(), nil, d)
257+
return buf, sctx.HandleError(err)
256258
}
257259
cd := NewRowDecoder(us.Ctx(), us.Schema(), us.table.Meta())
258260
rd := rowcodec.NewByteDecoder(colInfo, pkColIDs, defVal, us.Ctx().GetSessionVars().Location())
@@ -1164,7 +1166,8 @@ func getColIDAndPkColIDs(ctx sessionctx.Context, tbl table.Table, columns []*mod
11641166
if err != nil {
11651167
return nil, err
11661168
}
1167-
return tablecodec.EncodeValue(ctx.GetSessionVars().StmtCtx, nil, d)
1169+
buf, err := tablecodec.EncodeValue(ctx.GetSessionVars().StmtCtx.TimeZone(), nil, d)
1170+
return buf, ctx.GetSessionVars().StmtCtx.HandleError(err)
11681171
}
11691172
rd := rowcodec.NewByteDecoder(colInfos, pkColIDs, defVal, ctx.GetSessionVars().Location())
11701173
return colIDs, pkColIDs, rd

pkg/executor/test/executor/executor_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ func setColValue(t *testing.T, txn kv.Transaction, key kv.Key, v types.Datum) {
387387
colIDs := []int64{2, 3}
388388
sc := stmtctx.NewStmtCtxWithTimeZone(time.Local)
389389
rd := rowcodec.Encoder{Enable: true}
390-
value, err := tablecodec.EncodeRow(sc, row, colIDs, nil, nil, &rd)
390+
value, err := tablecodec.EncodeRow(sc.TimeZone(), row, colIDs, nil, nil, &rd)
391391
require.NoError(t, err)
392392
err = txn.Set(key, value)
393393
require.NoError(t, err)

pkg/executor/write.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -268,14 +268,15 @@ func addUnchangedKeysForLockByRow(
268268
return count, err
269269
}
270270
unchangedUniqueKey, _, err := tablecodec.GenIndexKey(
271-
stmtCtx,
271+
stmtCtx.TimeZone(),
272272
idx.TableMeta(),
273273
meta,
274274
physicalID,
275275
ukVals,
276276
h,
277277
nil,
278278
)
279+
err = stmtCtx.HandleError(err)
279280
if err != nil {
280281
return count, err
281282
}

pkg/server/handler/tests/http_handler_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -702,7 +702,7 @@ func TestDecodeColumnValue(t *testing.T) {
702702
}
703703
rd := rowcodec.Encoder{Enable: true}
704704
sc := stmtctx.NewStmtCtxWithTimeZone(time.UTC)
705-
bs, err := tablecodec.EncodeRow(sc, row, colIDs, nil, nil, &rd)
705+
bs, err := tablecodec.EncodeRow(sc.TimeZone(), row, colIDs, nil, nil, &rd)
706706
require.NoError(t, err)
707707
require.NotNil(t, bs)
708708
bin := base64.StdEncoding.EncodeToString(bs)

pkg/sessionctx/stmtctx/stmtctx.go

+4
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,10 @@ func (sc *StatementContext) HandleTruncate(err error) error {
504504

505505
// HandleError handles the error based on `ErrCtx()`
506506
func (sc *StatementContext) HandleError(err error) error {
507+
intest.AssertNotNil(sc)
508+
if sc == nil {
509+
return err
510+
}
507511
errCtx := sc.ErrCtx()
508512
return errCtx.HandleError(err)
509513
}

pkg/statistics/cmsketch.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"slices"
2424
"sort"
2525
"strings"
26+
"time"
2627

2728
"github.com/pingcap/errors"
2829
"github.com/pingcap/failpoint"
@@ -259,10 +260,15 @@ func (c *CMSketch) SubValue(h1, h2 uint64, count uint64) {
259260
// QueryValue is used to query the count of specified value.
260261
func QueryValue(sctx sessionctx.Context, c *CMSketch, t *TopN, val types.Datum) (uint64, error) {
261262
var sc *stmtctx.StatementContext
263+
tz := time.UTC
262264
if sctx != nil {
263265
sc = sctx.GetSessionVars().StmtCtx
266+
tz = sc.TimeZone()
267+
}
268+
rawData, err := tablecodec.EncodeValue(tz, nil, val)
269+
if sc != nil {
270+
err = sc.HandleError(err)
264271
}
265-
rawData, err := tablecodec.EncodeValue(sc, nil, val)
266272
if err != nil {
267273
return 0, errors.Trace(err)
268274
}

pkg/statistics/row_sampler.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,8 @@ func (s *RowSampleBuilder) Collect() (RowSampleCollector, error) {
195195
return nil, err
196196
}
197197
decodedVal.SetBytesAsString(s.Collators[i].Key(decodedVal.GetString()), decodedVal.Collation(), uint32(decodedVal.Length()))
198-
encodedKey, err := tablecodec.EncodeValue(s.Sc, nil, decodedVal)
198+
encodedKey, err := tablecodec.EncodeValue(s.Sc.TimeZone(), nil, decodedVal)
199+
err = s.Sc.HandleError(err)
199200
if err != nil {
200201
return nil, err
201202
}

pkg/statistics/sample.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,8 @@ func (s SampleBuilder) CollectColumnStats() ([]*SampleCollector, *SortedBuilder,
259259
return nil, nil, err
260260
}
261261
decodedVal.SetBytesAsString(s.Collators[i].Key(decodedVal.GetString()), decodedVal.Collation(), uint32(decodedVal.Length()))
262-
encodedKey, err := tablecodec.EncodeValue(s.Sc, nil, decodedVal)
262+
encodedKey, err := tablecodec.EncodeValue(s.Sc.TimeZone(), nil, decodedVal)
263+
err = s.Sc.HandleError(err)
263264
if err != nil {
264265
return nil, nil, err
265266
}
@@ -306,7 +307,8 @@ func (c *SampleCollector) ExtractTopN(numTop uint32, sc *stmtctx.StatementContex
306307
if err != nil {
307308
return err
308309
}
309-
data, err := tablecodec.EncodeValue(sc, nil, d)
310+
data, err := tablecodec.EncodeValue(sc.TimeZone(), nil, d)
311+
err = sc.HandleError(err)
310312
if err != nil {
311313
return err
312314
}

pkg/store/mockstore/cluster_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func TestClusterSplit(t *testing.T) {
5858
colValue := types.NewStringDatum(strconv.Itoa(int(handle)))
5959
// TODO: Should use session's TimeZone instead of UTC.
6060
rd := rowcodec.Encoder{Enable: true}
61-
rowValue, err1 := tablecodec.EncodeRow(sc, []types.Datum{colValue}, []int64{colID}, nil, nil, &rd)
61+
rowValue, err1 := tablecodec.EncodeRow(sc.TimeZone(), []types.Datum{colValue}, []int64{colID}, nil, nil, &rd)
6262
require.NoError(t, err1)
6363
txn.Set(rowKey, rowValue)
6464

pkg/store/mockstore/unistore/cophandler/analyze.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,8 @@ func (e *analyzeColumnsExec) Process(key, value []byte) error {
495495
continue
496496
}
497497

498-
value, err := tablecodec.EncodeValue(e.evalCtx.sc, nil, d)
498+
value, err := tablecodec.EncodeValue(e.evalCtx.sc.TimeZone(), nil, d)
499+
err = e.evalCtx.sc.HandleError(err)
499500
if err != nil {
500501
return err
501502
}

pkg/store/mockstore/unistore/cophandler/cop_handler_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func prepareTestTableData(keyNumber int, tableID int64) (*data, error) {
118118
for i := 0; i < keyNumber; i++ {
119119
datum := types.MakeDatums(i, "abc", 10.0)
120120
rows[int64(i)] = datum
121-
rowEncodedData, err := tablecodec.EncodeRow(stmtCtx, datum, colIds, nil, nil, encoder)
121+
rowEncodedData, err := tablecodec.EncodeRow(stmtCtx.TimeZone(), datum, colIds, nil, nil, encoder)
122122
if err != nil {
123123
return nil, err
124124
}

pkg/store/mockstore/unistore/tikv/BUILD.bazel

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ go_library(
1818
visibility = ["//visibility:public"],
1919
deps = [
2020
"//pkg/kv",
21-
"//pkg/sessionctx/stmtctx",
2221
"//pkg/store/mockstore/unistore/client",
2322
"//pkg/store/mockstore/unistore/config",
2423
"//pkg/store/mockstore/unistore/cophandler",

pkg/store/mockstore/unistore/tikv/mvcc.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import (
3333
"github.com/pingcap/errors"
3434
"github.com/pingcap/kvproto/pkg/kvrpcpb"
3535
"github.com/pingcap/log"
36-
"github.com/pingcap/tidb/pkg/sessionctx/stmtctx"
3736
"github.com/pingcap/tidb/pkg/store/mockstore/unistore/config"
3837
"github.com/pingcap/tidb/pkg/store/mockstore/unistore/lockstore"
3938
"github.com/pingcap/tidb/pkg/store/mockstore/unistore/pd"
@@ -1001,7 +1000,7 @@ func encodeFromOldRow(oldRow, buf []byte) ([]byte, error) {
10011000
}
10021001
var encoder rowcodec.Encoder
10031002
buf = buf[:0]
1004-
return encoder.Encode(stmtctx.NewStmtCtx(), colIDs, datums, buf)
1003+
return encoder.Encode(time.UTC, colIDs, datums, buf)
10051004
}
10061005

10071006
func (store *MVCCStore) buildPrewriteLock(reqCtx *requestCtx, m *kvrpcpb.Mutation, item *badger.Item,

pkg/table/tables/index.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,9 @@ func (c *index) GenIndexKey(sc *stmtctx.StatementContext, indexedValues []types.
9393
if c.idxInfo.Global {
9494
idxTblID = c.tblInfo.ID
9595
}
96-
return tablecodec.GenIndexKey(sc, c.tblInfo, c.idxInfo, idxTblID, indexedValues, h, buf)
96+
key, distinct, err = tablecodec.GenIndexKey(sc.TimeZone(), c.tblInfo, c.idxInfo, idxTblID, indexedValues, h, buf)
97+
err = sc.HandleError(err)
98+
return
9799
}
98100

99101
// GenIndexValue generates the index value.
@@ -102,7 +104,9 @@ func (c *index) GenIndexValue(sc *stmtctx.StatementContext, distinct bool, index
102104
c.initNeedRestoreData.Do(func() {
103105
c.needRestoredData = NeedRestoredData(c.idxInfo.Columns, c.tblInfo.Columns)
104106
})
105-
return tablecodec.GenIndexValuePortal(sc, c.tblInfo, c.idxInfo, c.needRestoredData, distinct, false, indexedValues, h, c.phyTblID, restoredData, buf)
107+
idx, err := tablecodec.GenIndexValuePortal(sc.TimeZone(), c.tblInfo, c.idxInfo, c.needRestoredData, distinct, false, indexedValues, h, c.phyTblID, restoredData, buf)
108+
err = sc.HandleError(err)
109+
return idx, err
106110
}
107111

108112
// getIndexedValue will produce the result like:
@@ -233,8 +237,9 @@ func (c *index) Create(sctx sessionctx.Context, txn kv.Transaction, indexedValue
233237
c.initNeedRestoreData.Do(func() {
234238
c.needRestoredData = NeedRestoredData(c.idxInfo.Columns, c.tblInfo.Columns)
235239
})
236-
idxVal, err := tablecodec.GenIndexValuePortal(sctx.GetSessionVars().StmtCtx, c.tblInfo, c.idxInfo,
240+
idxVal, err := tablecodec.GenIndexValuePortal(sctx.GetSessionVars().StmtCtx.TimeZone(), c.tblInfo, c.idxInfo,
237241
c.needRestoredData, distinct, opt.Untouched, value, h, c.phyTblID, handleRestoreData, nil)
242+
err = sctx.GetSessionVars().StmtCtx.HandleError(err)
238243
if err != nil {
239244
return nil, err
240245
}

pkg/table/tables/mutation_checker_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ func TestCheckRowInsertionConsistency(t *testing.T) {
9393
// mocked data
9494
mockRowKey233 := tablecodec.EncodeRowKeyWithHandle(1, kv.IntHandle(233))
9595
mockValue233, err := tablecodec.EncodeRow(
96-
sessVars.StmtCtx, []types.Datum{types.NewIntDatum(233)}, []int64{101}, nil, nil, &rd,
96+
sessVars.StmtCtx.TimeZone(), []types.Datum{types.NewIntDatum(233)}, []int64{101}, nil, nil, &rd,
9797
)
9898
require.Nil(t, err)
9999
fakeRowInsertion := mutation{key: []byte{1, 1}, value: []byte{1, 1, 1}}
@@ -306,7 +306,7 @@ func TestCheckIndexKeysAndCheckHandleConsistency(t *testing.T) {
306306
// test checkHandleConsistency
307307
rowKey := tablecodec.EncodeRowKeyWithHandle(table.tableID, handle)
308308
corruptedRowKey := tablecodec.EncodeRowKeyWithHandle(table.tableID, corruptedHandle)
309-
rowValue, err := tablecodec.EncodeRow(sessVars.StmtCtx, rowToInsert, []int64{1, 2}, nil, nil, &rd)
309+
rowValue, err := tablecodec.EncodeRow(sessVars.StmtCtx.TimeZone(), rowToInsert, []int64{1, 2}, nil, nil, &rd)
310310
require.Nil(t, err)
311311
rowMutation := mutation{key: rowKey, value: rowValue}
312312
corruptedRowMutation := mutation{key: corruptedRowKey, value: rowValue}
@@ -327,14 +327,14 @@ func buildIndexKeyValue(index table.Index, rowToInsert []types.Datum, sessVars *
327327
return nil, nil, err
328328
}
329329
key, distinct, err := tablecodec.GenIndexKey(
330-
sessVars.StmtCtx, &tableInfo, indexInfo, 1, indexedValues, handle, nil,
330+
sessVars.StmtCtx.TimeZone(), &tableInfo, indexInfo, 1, indexedValues, handle, nil,
331331
)
332332
if err != nil {
333333
return nil, nil, err
334334
}
335335
rsData := TryGetHandleRestoredDataWrapper(table.meta, rowToInsert, nil, indexInfo)
336336
value, err := tablecodec.GenIndexValuePortal(
337-
sessVars.StmtCtx, &tableInfo, indexInfo, NeedRestoredData(indexInfo.Columns, tableInfo.Columns),
337+
sessVars.StmtCtx.TimeZone(), &tableInfo, indexInfo, NeedRestoredData(indexInfo.Columns, tableInfo.Columns),
338338
distinct, false, indexedValues, handle, 0, rsData, nil,
339339
)
340340
if err != nil {

pkg/table/tables/tables.go

+14-7
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,8 @@ func (t *TableCommon) UpdateRecord(ctx context.Context, sctx sessionctx.Context,
549549
key := t.RecordKey(h)
550550
sc, rd := sessVars.StmtCtx, &sessVars.RowEncoder
551551
checksums, writeBufs.RowValBuf = t.calcChecksums(sctx, h, checksumData, writeBufs.RowValBuf)
552-
writeBufs.RowValBuf, err = tablecodec.EncodeRow(sc, row, colIDs, writeBufs.RowValBuf, writeBufs.AddRowValues, rd, checksums...)
552+
writeBufs.RowValBuf, err = tablecodec.EncodeRow(sc.TimeZone(), row, colIDs, writeBufs.RowValBuf, writeBufs.AddRowValues, rd, checksums...)
553+
err = sc.HandleError(err)
553554
if err != nil {
554555
return err
555556
}
@@ -988,7 +989,8 @@ func (t *TableCommon) AddRecord(sctx sessionctx.Context, r []types.Datum, opts .
988989
zap.Stringer("key", key))
989990
sc, rd := sessVars.StmtCtx, &sessVars.RowEncoder
990991
checksums, writeBufs.RowValBuf = t.calcChecksums(sctx, recordID, checksumData, writeBufs.RowValBuf)
991-
writeBufs.RowValBuf, err = tablecodec.EncodeRow(sc, row, colIDs, writeBufs.RowValBuf, writeBufs.AddRowValues, rd, checksums...)
992+
writeBufs.RowValBuf, err = tablecodec.EncodeRow(sc.TimeZone(), row, colIDs, writeBufs.RowValBuf, writeBufs.AddRowValues, rd, checksums...)
993+
err = sc.HandleError(err)
992994
if err != nil {
993995
return nil, err
994996
}
@@ -1395,7 +1397,8 @@ func (t *TableCommon) addInsertBinlog(ctx sessionctx.Context, h kv.Handle, row [
13951397
if err != nil {
13961398
return err
13971399
}
1398-
value, err := tablecodec.EncodeOldRow(ctx.GetSessionVars().StmtCtx, row, colIDs, nil, nil)
1400+
value, err := tablecodec.EncodeOldRow(ctx.GetSessionVars().StmtCtx.TimeZone(), row, colIDs, nil, nil)
1401+
err = ctx.GetSessionVars().StmtCtx.HandleError(err)
13991402
if err != nil {
14001403
return err
14011404
}
@@ -1406,11 +1409,13 @@ func (t *TableCommon) addInsertBinlog(ctx sessionctx.Context, h kv.Handle, row [
14061409
}
14071410

14081411
func (t *TableCommon) addUpdateBinlog(ctx sessionctx.Context, oldRow, newRow []types.Datum, colIDs []int64) error {
1409-
old, err := tablecodec.EncodeOldRow(ctx.GetSessionVars().StmtCtx, oldRow, colIDs, nil, nil)
1412+
old, err := tablecodec.EncodeOldRow(ctx.GetSessionVars().StmtCtx.TimeZone(), oldRow, colIDs, nil, nil)
1413+
err = ctx.GetSessionVars().StmtCtx.HandleError(err)
14101414
if err != nil {
14111415
return err
14121416
}
1413-
newVal, err := tablecodec.EncodeOldRow(ctx.GetSessionVars().StmtCtx, newRow, colIDs, nil, nil)
1417+
newVal, err := tablecodec.EncodeOldRow(ctx.GetSessionVars().StmtCtx.TimeZone(), newRow, colIDs, nil, nil)
1418+
err = ctx.GetSessionVars().StmtCtx.HandleError(err)
14141419
if err != nil {
14151420
return err
14161421
}
@@ -1422,7 +1427,8 @@ func (t *TableCommon) addUpdateBinlog(ctx sessionctx.Context, oldRow, newRow []t
14221427
}
14231428

14241429
func (t *TableCommon) addDeleteBinlog(ctx sessionctx.Context, r []types.Datum, colIDs []int64) error {
1425-
data, err := tablecodec.EncodeOldRow(ctx.GetSessionVars().StmtCtx, r, colIDs, nil, nil)
1430+
data, err := tablecodec.EncodeOldRow(ctx.GetSessionVars().StmtCtx.TimeZone(), r, colIDs, nil, nil)
1431+
err = ctx.GetSessionVars().StmtCtx.HandleError(err)
14261432
if err != nil {
14271433
return err
14281434
}
@@ -2316,7 +2322,8 @@ func SetPBColumnsDefaultValue(ctx sessionctx.Context, pbColumns []*tipb.ColumnIn
23162322
return err
23172323
}
23182324

2319-
pbColumns[i].DefaultVal, err = tablecodec.EncodeValue(sessVars.StmtCtx, nil, d)
2325+
pbColumns[i].DefaultVal, err = tablecodec.EncodeValue(sessVars.StmtCtx.TimeZone(), nil, d)
2326+
err = sessVars.StmtCtx.HandleError(err)
23202327
if err != nil {
23212328
return err
23222329
}

pkg/tablecodec/BUILD.bazel

-2
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,12 @@ go_library(
66
importpath = "github.com/pingcap/tidb/pkg/tablecodec",
77
visibility = ["//visibility:public"],
88
deps = [
9-
"//pkg/errctx",
109
"//pkg/errno",
1110
"//pkg/kv",
1211
"//pkg/parser/charset",
1312
"//pkg/parser/model",
1413
"//pkg/parser/mysql",
1514
"//pkg/parser/terror",
16-
"//pkg/sessionctx/stmtctx",
1715
"//pkg/structure",
1816
"//pkg/types",
1917
"//pkg/util/codec",

0 commit comments

Comments
 (0)