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

Function decodeLargeNumber

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

Source from the content-addressed store, hash-verified

453}
454
455func decodeLargeNumber(
456 negative bool, buf []byte, tmp []byte,
457) (e int, m []byte, rest []byte, newTmp []byte, err error) {
458 var ex uint64
459 var r []byte
460 if negative {
461 r, ex, err = DecodeUvarintDescending(buf[1:])
462 } else {
463 r, ex, err = DecodeUvarintAscending(buf[1:])
464 }
465 if err != nil {
466 return 0, nil, nil, nil, err
467 }
468
469 idx, err := findDecimalTerminator(r)
470 if err != nil {
471 return 0, nil, nil, nil, err
472 }
473
474 m = r[:idx]
475 if negative {
476 var mCpy []byte
477 if k := len(m); k <= len(tmp) {
478 mCpy = tmp[:k]
479 tmp = tmp[k:]
480 } else {
481 mCpy = make([]byte, k)
482 }
483 copy(mCpy, m)
484 onesComplement(mCpy)
485 m = mCpy
486 }
487 return int(ex), m, r[idx+1:], tmp, nil
488}
489
490// EncodeNonsortingDecimal returns the resulting byte slice with the
491// encoded decimal appended to b. The encoding is limited compared to

Callers 1

decodeDecimalFunction · 0.85

Calls 4

DecodeUvarintDescendingFunction · 0.85
DecodeUvarintAscendingFunction · 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…