MCPcopy Create free account
hub / github.com/cockroachdb/cockroachdb-parser / decodeSmallNumber

Function decodeSmallNumber

pkg/util/encoding/decimal.go:393–426  ·  view source on GitHub ↗
(
	negative bool, buf []byte, tmp []byte,
)

Source from the content-addressed store, hash-verified

391}
392
393func decodeSmallNumber(
394 negative bool, buf []byte, tmp []byte,
395) (e int, m []byte, rest []byte, newTmp []byte, err error) {
396 var ex uint64
397 var r []byte
398 if negative {
399 r, ex, err = DecodeUvarintAscending(buf[1:])
400 } else {
401 r, ex, err = DecodeUvarintDescending(buf[1:])
402 }
403 if err != nil {
404 return 0, nil, nil, nil, err
405 }
406
407 idx, err := findDecimalTerminator(r)
408 if err != nil {
409 return 0, nil, nil, nil, err
410 }
411
412 m = r[:idx]
413 if negative {
414 var mCpy []byte
415 if k := len(m); k <= len(tmp) {
416 mCpy = tmp[:k]
417 tmp = tmp[k:]
418 } else {
419 mCpy = make([]byte, k)
420 }
421 copy(mCpy, m)
422 onesComplement(mCpy)
423 m = mCpy
424 }
425 return int(-ex), m, r[idx+1:], tmp, nil
426}
427
428func decodeMediumNumber(
429 negative bool, buf []byte, tmp []byte,

Callers 1

decodeDecimalFunction · 0.85

Calls 4

DecodeUvarintAscendingFunction · 0.85
DecodeUvarintDescendingFunction · 0.85
findDecimalTerminatorFunction · 0.85
onesComplementFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…