{"record":{"id":"a2cde4869d4faa30","repo":"jackc/pgx","slug":"bad-interval-format-q","errorCode":null,"errorMessage":"bad interval format: %q","messagePattern":"bad interval format: %q","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pgtype/interval.go","lineNumber":225,"sourceCode":"\tvar months int32\n\n\tparts := strings.Split(string(src), \" \")\n\n\tfor i := 0; i < len(parts)-1; i += 2 {\n\t\tscalar, err := strconv.ParseInt(parts[i], 10, 64)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"bad interval format\")\n\t\t}\n\n\t\tswitch parts[i+1] {\n\t\tcase \"year\", \"years\":\n\t\t\tmonths += int32(scalar * 12)\n\t\tcase \"mon\", \"mons\":\n\t\t\tmonths += int32(scalar)\n\t\tcase \"day\", \"days\":\n\t\t\tdays = int32(scalar)\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"bad interval format: %q\", parts[i+1])\n\t\t}\n\t}\n\n\tif len(parts)%2 == 1 {\n\t\ttimeParts := strings.SplitN(parts[len(parts)-1], \":\", 3)\n\t\tif len(timeParts) != 3 {\n\t\t\treturn fmt.Errorf(\"bad interval format\")\n\t\t}\n\n\t\tvar negative bool\n\t\tif len(timeParts[0]) > 0 && timeParts[0][0] == '-' {\n\t\t\tnegative = true\n\t\t\ttimeParts[0] = timeParts[0][1:]\n\t\t}\n\n\t\thours, err := strconv.ParseInt(timeParts[0], 10, 64)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"bad interval hour format: %s\", timeParts[0])","sourceCodeStart":207,"sourceCodeEnd":243,"githubUrl":"https://github.com/jackc/pgx/blob/ec1a0befd22592cffffdeeb0a50311b506372f4c/pgtype/interval.go#L207-L243","documentation":"The interval text contains a number followed by a unit that is not one of the accepted keywords (year/years/mon/mons/day/days). The unrecognized unit token, shown quoted in the message, is the faulting input.","triggerScenarios":"Thrown at pgtype/interval.go:225 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use only supported units: years, months (mons), days, and an HH:MM:SS time part","Avoid locale-specific or abbreviated units not emitted by PostgreSQL"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"ec1a0befd22592cffffdeeb0a50311b506372f4c","analyzedAt":"2026-08-04T22:52:11.263Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}