-
-
Notifications
You must be signed in to change notification settings - Fork 166
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Encountering a bug where pgtype is not being correctly substituted in the generated model.go for pgtype.Range[pgtype.Timestamp]
Environment (please complete the following information):
- OS: macos
- Database: postgres
- Database driver: pgx
- Jet version 2.13
Code snippet
err := pggen.GenerateDSN(cfg.PostgresResources.GetUri(), jetSchema, jetDir,
template.Default(Dialect).
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
return template.DefaultSchema(schemaMetaData).
UseModel(template.DefaultModel().
UseTable(func(table metadata.Table) template.TableModel {
return template.DefaultTableModel(table).
UseField(func(columnMetaData metadata.Column) template.TableModelField {
defaultTableModelField := template.DefaultTableModelField(columnMetaData)
switch defaultTableModelField.Type.Name {
case "*string":
defaultTableModelField.Type = template.NewType(pgtype.Text{})
case "*int32":
defaultTableModelField.Type = template.NewType(pgtype.Int4{})
case "*int64":
defaultTableModelField.Type = template.NewType(pgtype.Int8{})
case "*bool":
defaultTableModelField.Type = template.NewType(pgtype.Bool{})
case "*float64":
defaultTableModelField.Type = template.NewType(pgtype.Float8{})
case "*time.Time":
defaultTableModelField.Type = template.NewType(pgtype.Timestamp{})
case "pgtype.Tsrange":
defaultTableModelField.Type = template.NewType(pgtype.Range[pgtype.Timestamp]{})
}
return defaultTableModelField
})
}),
)
}),
resulting in the following generated file:
//
// Code generated by go-jet DO NOT EDIT.
//
// WARNING: Changes to this file may cause incorrect behavior
// and will be lost if the code is regenerated
//
package model
import (
"github.com/jackc/pgx/v5/pgtype"
)
type TdspRates struct {
ID int32 `sql:"primary_key"`
CreatedAt pgtype.Timestamp
Utility string
EffectiveInterval pgtype.Range[github.com/jackc/pgx/v5/pgtype.Timestamp]
RateCents float64
MonthlyFeeCents float64
}
Expected behavior
In our codebase for postgres tsrange we use pgtype.Range[pgtype.Timestamp]
Any advice on how I can surmount this, this is unfortunately blocking our go-jet adoption
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working