{"id":"3ca26b91e46d461e","repo":"jackc/pgx","slug":"numeric-w","errorCode":null,"errorMessage":"numeric: %w","messagePattern":"numeric: %w","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pgtype/numeric.go","lineNumber":685,"sourceCode":"\t\t\tcase 1:\n\t\t\t\tmul = bigNBase\n\t\t\tcase 2:\n\t\t\t\tmul = bigNBaseX2\n\t\t\tcase 3:\n\t\t\t\tmul = bigNBaseX3\n\t\t\tcase 4:\n\t\t\t\tmul = bigNBaseX4\n\t\t\tdefault:\n\t\t\t\treturn fmt.Errorf(\"invalid digitsRead: %d (this can't happen)\", digitsRead)\n\t\t\t}\n\t\t\taccum.Mul(accum, mul)\n\t\t}\n\n\t\taccum.Add(accum, big.NewInt(int64accum))\n\t}\n\n\tif err := r.Finish(); err != nil {\n\t\treturn fmt.Errorf(\"numeric: %w\", err)\n\t}\n\n\texp := (int32(weight) - int32(ndigits) + 1) * 4\n\n\tif dscale > 0 {\n\t\tfracNBaseDigits := int(ndigits) - int(weight) - 1\n\t\tfracDecimalDigits := fracNBaseDigits * 4\n\t\tdscaleInt := int(dscale)\n\n\t\tif dscaleInt > fracDecimalDigits {\n\t\t\tmultCount := dscaleInt - fracDecimalDigits\n\t\t\tfor range multCount {\n\t\t\t\taccum.Mul(accum, big10)\n\t\t\t\texp--\n\t\t\t}\n\t\t} else if dscaleInt < fracDecimalDigits {\n\t\t\tdivCount := fracDecimalDigits - dscaleInt\n\t\t\tfor range divCount {","sourceCodeStart":667,"sourceCodeEnd":703,"githubUrl":"https://github.com/jackc/pgx/blob/ec1a0befd22592cffffdeeb0a50311b506372f4c/pgtype/numeric.go#L667-L703","documentation":"Error \"numeric: %w\" thrown in jackc/pgx.","triggerScenarios":"Thrown at pgtype/numeric.go:685 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"ec1a0befd22592cffffdeeb0a50311b506372f4c","analyzedAt":"2026-08-04T22:52:11.263Z","schemaVersion":2}