MCPcopy
hub / github.com/pingcap/tidb / TestTempIndexValueCodec

Function TestTempIndexValueCodec

pkg/tablecodec/tablecodec_test.go:632–730  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

630}
631
632func TestTempIndexValueCodec(t *testing.T) {
633 // Test encode temp index value.
634 encodedValue, err := codec.EncodeValue(stmtctx.NewStmtCtxWithTimeZone(time.UTC).TimeZone(), nil, types.NewIntDatum(1))
635 require.NoError(t, err)
636 encodedValueCopy := make([]byte, len(encodedValue))
637 copy(encodedValueCopy, encodedValue)
638
639 tempIdxVal := TempIndexValueElem{
640 Value: encodedValue,
641 KeyVer: 'b',
642 }
643 val := tempIdxVal.Encode(nil)
644 var newTempIdxVal TempIndexValueElem
645 remain, err := newTempIdxVal.DecodeOne(val)
646 require.NoError(t, err)
647 require.Equal(t, 0, len(remain))
648 require.EqualValues(t, tempIdxVal, newTempIdxVal)
649
650 idxVal := EncodeHandleInUniqueIndexValue(kv.IntHandle(100), false)
651 tempIdxVal = TempIndexValueElem{
652 Value: idxVal,
653 KeyVer: 'm',
654 Distinct: true,
655 }
656 newTempIdxVal = TempIndexValueElem{}
657 val = tempIdxVal.Encode(nil)
658 remain, err = newTempIdxVal.DecodeOne(val)
659 require.NoError(t, err)
660 require.Equal(t, 0, len(remain))
661 handle, err := DecodeHandleInIndexValue(newTempIdxVal.Value)
662 require.NoError(t, err)
663 require.Equal(t, handle.IntValue(), int64(100))
664 require.EqualValues(t, tempIdxVal, newTempIdxVal)
665
666 tempIdxVal = TempIndexValueElem{
667 Delete: true,
668 KeyVer: 'b',
669 }
670 newTempIdxVal = TempIndexValueElem{}
671 val = tempIdxVal.Encode(nil)
672 remain, err = newTempIdxVal.DecodeOne(val)
673 require.NoError(t, err)
674 require.Equal(t, 0, len(remain))
675 require.EqualValues(t, tempIdxVal, newTempIdxVal)
676
677 tempIdxVal = TempIndexValueElem{
678 Delete: true,
679 KeyVer: 'b',
680 Distinct: true,
681 Handle: kv.IntHandle(100),
682 }
683 newTempIdxVal = TempIndexValueElem{}
684 val = tempIdxVal.Encode(nil)
685 remain, err = newTempIdxVal.DecodeOne(val)
686 require.NoError(t, err)
687 require.Equal(t, 0, len(remain))
688 require.EqualValues(t, tempIdxVal, newTempIdxVal)
689

Callers

nothing calls this directly

Calls 13

EncodeMethod · 0.95
DecodeOneMethod · 0.95
EncodeValueFunction · 0.92
NewStmtCtxWithTimeZoneFunction · 0.92
NewIntDatumFunction · 0.92
IntHandleTypeAlias · 0.92
DecodeHandleInIndexValueFunction · 0.85
DecodeTempIndexValueFunction · 0.85
IndexKVIsUniqueFunction · 0.85
TimeZoneMethod · 0.80
EqualMethod · 0.65

Tested by

no test coverage detected