1
0
mirror of https://github.com/jackc/pgx.git synced 2025-05-05 23:21:11 +00:00

Do not encode interval microseconds when they are 0

This make the encode match what postgres does
This commit is contained in:
Carlos Pérez-Aradros Herce 2024-03-19 14:42:26 +01:00 committed by Jack Christensen
parent 48ae1f4b2c
commit 01d649b2bf

@ -135,6 +135,9 @@ func (encodePlanIntervalCodecText) Encode(value any, buf []byte) (newBuf []byte,
buf = append(buf, " day"...) buf = append(buf, " day"...)
} }
if interval.Microseconds != 0 {
buf = append(buf, " "...)
absMicroseconds := interval.Microseconds absMicroseconds := interval.Microseconds
if absMicroseconds < 0 { if absMicroseconds < 0 {
absMicroseconds = -absMicroseconds absMicroseconds = -absMicroseconds
@ -144,10 +147,16 @@ func (encodePlanIntervalCodecText) Encode(value any, buf []byte) (newBuf []byte,
hours := absMicroseconds / microsecondsPerHour hours := absMicroseconds / microsecondsPerHour
minutes := (absMicroseconds % microsecondsPerHour) / microsecondsPerMinute minutes := (absMicroseconds % microsecondsPerHour) / microsecondsPerMinute
seconds := (absMicroseconds % microsecondsPerMinute) / microsecondsPerSecond seconds := (absMicroseconds % microsecondsPerMinute) / microsecondsPerSecond
microseconds := absMicroseconds % microsecondsPerSecond
timeStr := fmt.Sprintf("%02d:%02d:%02d.%06d", hours, minutes, seconds, microseconds) timeStr := fmt.Sprintf("%02d:%02d:%02d", hours, minutes, seconds)
buf = append(buf, timeStr...) buf = append(buf, timeStr...)
microseconds := absMicroseconds % microsecondsPerSecond
if microseconds != 0 {
buf = append(buf, fmt.Sprintf(".%06d", microseconds)...)
}
}
return buf, nil return buf, nil
} }