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

Function splitIndexValueForIndexValueVersion0

pkg/tablecodec/tablecodec.go:1858–1879  ·  view source on GitHub ↗

splitIndexValueForIndexValueVersion0 splits index value into segments.

(value []byte)

Source from the content-addressed store, hash-verified

1856
1857// splitIndexValueForIndexValueVersion0 splits index value into segments.
1858func splitIndexValueForIndexValueVersion0(value []byte) (segs IndexValueSegments) {
1859 tailLen := int(value[0])
1860 tail := value[len(value)-tailLen:]
1861 value = value[1 : len(value)-tailLen]
1862 if len(tail) >= 8 {
1863 segs.IntHandle = tail[:8]
1864 }
1865 if len(value) > 0 && value[0] == CommonHandleFlag {
1866 handleLen := uint16(value[1])<<8 + uint16(value[2])
1867 handleEndOff := 3 + handleLen
1868 segs.CommonHandle = value[3:handleEndOff]
1869 value = value[handleEndOff:]
1870 }
1871 if len(value) > 0 && value[0] == PartitionIDFlag {
1872 segs.PartitionID = value[1:9]
1873 value = value[9:]
1874 }
1875 if len(value) > 0 && value[0] == RestoreDataFlag {
1876 segs.RestoredValues = value
1877 }
1878 return
1879}
1880
1881// splitIndexValueForClusteredIndexVersion1 splits index value into segments.
1882func splitIndexValueForClusteredIndexVersion1(value []byte) (segs IndexValueSegments) {

Callers 3

SplitIndexValueFunction · 0.85
decodeIndexKvGeneralFunction · 0.85
IndexKVIsUniqueFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected