jackc/pgx · error

numeric: %w

Error message

numeric: %w

What it means

Error "numeric: %w" thrown in jackc/pgx.

Source

Thrown at pgtype/numeric.go:685

			case 1:
				mul = bigNBase
			case 2:
				mul = bigNBaseX2
			case 3:
				mul = bigNBaseX3
			case 4:
				mul = bigNBaseX4
			default:
				return fmt.Errorf("invalid digitsRead: %d (this can't happen)", digitsRead)
			}
			accum.Mul(accum, mul)
		}

		accum.Add(accum, big.NewInt(int64accum))
	}

	if err := r.Finish(); err != nil {
		return fmt.Errorf("numeric: %w", err)
	}

	exp := (int32(weight) - int32(ndigits) + 1) * 4

	if dscale > 0 {
		fracNBaseDigits := int(ndigits) - int(weight) - 1
		fracDecimalDigits := fracNBaseDigits * 4
		dscaleInt := int(dscale)

		if dscaleInt > fracDecimalDigits {
			multCount := dscaleInt - fracDecimalDigits
			for range multCount {
				accum.Mul(accum, big10)
				exp--
			}
		} else if dscaleInt < fracDecimalDigits {
			divCount := fracDecimalDigits - dscaleInt
			for range divCount {

View on GitHub (pinned to ec1a0befd2)

When it happens

Trigger: Thrown at pgtype/numeric.go:685 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of jackc/pgx@ec1a0befd2 (2026-08-04). Data as JSON: /data/errors/3ca26b91e46d461e.json. Report an issue: GitHub.