Skip to content

Commit

Permalink
fix interval
Browse files Browse the repository at this point in the history
  • Loading branch information
Amogh-Bharadwaj committed May 16, 2024
1 parent 00aa28b commit bdcafff
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions flow/connectors/postgres/qvalue_convert.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"github.com/lib/pq/oid"
"github.com/shopspring/decimal"

datatypes "github.com/PeerDB-io/peer-flow/datatypes"
"github.com/PeerDB-io/peer-flow/model/qvalue"
"github.com/PeerDB-io/peer-flow/shared"
)
Expand Down Expand Up @@ -254,11 +255,23 @@ func parseFieldFromQValueKind(qvalueKind qvalue.QValueKind, value interface{}) (
return qvalue.QValueTimestampTZ{Val: timestamp}, nil
case qvalue.QValueKindInterval:
intervalObject := value.(pgtype.Interval)
var interval datatypes.PeerDBInterval
interval.Hours = int(intervalObject.Microseconds / 3600000000)
interval.Minutes = int((intervalObject.Microseconds % 3600000000) / 60000000)
interval.Seconds = float64(intervalObject.Microseconds%60000000) / 1000000.0
interval.Days = int(intervalObject.Days)
interval.Years = int(intervalObject.Months / 12)
interval.Months = int(intervalObject.Months % 12)
interval.Valid = intervalObject.Valid

// Construct the interval string manually
var intervalString string
intervalString += strconv.Itoa(int(intervalObject.Months)) + " months "
intervalString += strconv.Itoa(int(intervalObject.Days)) + " days "
intervalString += strconv.Itoa(int(intervalObject.Microseconds)) + " microseconds"
intervalString += strconv.Itoa(int(interval.Years)) + " years "
intervalString += strconv.Itoa(int(interval.Months)) + " months "
intervalString += strconv.Itoa(int(interval.Days)) + " days "
intervalString += strconv.Itoa(int(interval.Hours)) + " hours "
intervalString += strconv.Itoa(int(interval.Minutes)) + " minutes "
intervalString += strconv.Itoa(int(interval.Seconds)) + " seconds "
intervalString = strings.Trim(intervalString, " ")
return qvalue.QValueString{Val: intervalString}, nil
case qvalue.QValueKindDate:
Expand Down

0 comments on commit bdcafff

Please sign in to comment.