Documentation
¶
Index ¶
- Variables
- func FormatCamelCase(dbColumnName string) string
- func FormatDisplayName(dbColumnName string) string
- func FormatFieldName(dbColumnName string) string
- func ValidateSQLCConfig(projectPath string) error
- type DatabaseTypeMapper
- type PostgreSQLTypeMapper
- func (pgm *PostgreSQLTypeMapper) GenerateConversionFromDB(fieldName, sqlcType, goType string) string
- func (pgm *PostgreSQLTypeMapper) GenerateConversionToDB(sqlcType, goType, valueExpr string) string
- func (pgm *PostgreSQLTypeMapper) GenerateZeroCheck(goType, valueExpr string) string
- func (pgm *PostgreSQLTypeMapper) GetDatabaseType() string
- func (pgm *PostgreSQLTypeMapper) MapToGoType(column *catalog.Column) (TypeMapping, error)
- func (pgm *PostgreSQLTypeMapper) MapToSQLType(goType string, nullable bool) (string, error)
- type SQLCConfig
- type SQLiteTypeMapper
- func (stm *SQLiteTypeMapper) GenerateConversionFromDB(fieldName, sqlcType, goType string) string
- func (stm *SQLiteTypeMapper) GenerateConversionToDB(sqlcType, goType, valueExpr string) string
- func (stm *SQLiteTypeMapper) GenerateZeroCheck(goType, valueExpr string) string
- func (stm *SQLiteTypeMapper) GetDatabaseType() string
- func (stm *SQLiteTypeMapper) MapToGoType(column *catalog.Column) (TypeMapping, error)
- func (stm *SQLiteTypeMapper) MapToSQLType(goType string, nullable bool) (string, error)
- type TypeConversionService
- func (tcs *TypeConversionService) GenerateConversionFromDB(databaseType, fieldName, sqlcType, goType string) string
- func (tcs *TypeConversionService) GenerateConversionToDB(databaseType, sqlcType, goType, valueExpr string) string
- func (tcs *TypeConversionService) GenerateZeroCheck(databaseType, goType, valueExpr string) string
- func (tcs *TypeConversionService) GetMapper(databaseType string) (DatabaseTypeMapper, error)
- func (tcs *TypeConversionService) MapToGoType(databaseType string, column *catalog.Column) (TypeMapping, error)
- func (tcs *TypeConversionService) MapToSQLType(databaseType, goType string, nullable bool) (string, error)
- func (tcs *TypeConversionService) RegisterMapper(databaseType string, mapper DatabaseTypeMapper)
- type TypeMapper
- func (tm *TypeMapper) GenerateConversionFromDB(fieldName, sqlcType, goType string) string
- func (tm *TypeMapper) GenerateConversionToDB(sqlcType string, goType string, valueExpr string) string
- func (tm *TypeMapper) GenerateZeroCheck(goType string, valueExpr string) string
- func (tm *TypeMapper) GetDatabaseType() string
- func (tm *TypeMapper) MapSQLTypeToGo(sqlType string, nullable bool) (goType, sqlcType, packageName string, err error)
- type TypeMapping
- type TypeOverride
Constants ¶
This section is empty.
Variables ¶
var ( ErrNoTypeMapperFound = errors.New("no type mapper found for database type") ErrUnsupportedType = errors.New("unsupported database type") )
Functions ¶
func FormatCamelCase ¶
func FormatDisplayName ¶
func FormatFieldName ¶
func ValidateSQLCConfig ¶
Types ¶
type DatabaseTypeMapper ¶
type DatabaseTypeMapper interface {
MapToGoType(column *catalog.Column) (TypeMapping, error)
MapToSQLType(goType string, nullable bool) (string, error)
GenerateConversionFromDB(fieldName, sqlcType, goType string) string
GenerateConversionToDB(sqlcType, goType, valueExpr string) string
GenerateZeroCheck(goType, valueExpr string) string
GetDatabaseType() string
}
DatabaseTypeMapper interface defines the contract for database-specific type mapping
type PostgreSQLTypeMapper ¶
type PostgreSQLTypeMapper struct {
// contains filtered or unexported fields
}
PostgreSQLTypeMapper implements DatabaseTypeMapper for PostgreSQL
func NewPostgreSQLTypeMapper ¶
func NewPostgreSQLTypeMapper() *PostgreSQLTypeMapper
NewPostgreSQLTypeMapper creates a new PostgreSQL type mapper
func (*PostgreSQLTypeMapper) GenerateConversionFromDB ¶
func (pgm *PostgreSQLTypeMapper) GenerateConversionFromDB( fieldName, sqlcType, goType string, ) string
GenerateConversionFromDB generates conversion code from PostgreSQL to Go type
func (*PostgreSQLTypeMapper) GenerateConversionToDB ¶
func (pgm *PostgreSQLTypeMapper) GenerateConversionToDB(sqlcType, goType, valueExpr string) string
GenerateConversionToDB generates conversion code from Go to PostgreSQL type
func (*PostgreSQLTypeMapper) GenerateZeroCheck ¶
func (pgm *PostgreSQLTypeMapper) GenerateZeroCheck(goType, valueExpr string) string
GenerateZeroCheck generates zero-value check code for a Go type
func (*PostgreSQLTypeMapper) GetDatabaseType ¶
func (pgm *PostgreSQLTypeMapper) GetDatabaseType() string
GetDatabaseType returns the database type
func (*PostgreSQLTypeMapper) MapToGoType ¶
func (pgm *PostgreSQLTypeMapper) MapToGoType(column *catalog.Column) (TypeMapping, error)
MapToGoType maps a PostgreSQL column to a Go type
func (*PostgreSQLTypeMapper) MapToSQLType ¶
func (pgm *PostgreSQLTypeMapper) MapToSQLType(goType string, nullable bool) (string, error)
MapToSQLType maps a Go type to a PostgreSQL type
type SQLCConfig ¶
type SQLCConfig struct {
Version string `yaml:"version"`
SQL []struct {
Schema string `yaml:"schema"`
Queries string `yaml:"queries"`
Engine string `yaml:"engine"`
Gen struct {
Go struct {
Package string `yaml:"package"`
Out string `yaml:"out"`
OutputDBFileName string `yaml:"output_db_file_name"`
OutputModelsFileName string `yaml:"output_models_file_name"`
EmitMethodsWithDBArgument bool `yaml:"emit_methods_with_db_argument"`
SQLPackage string `yaml:"sql_package"`
Overrides []struct {
DBType string `yaml:"db_type"`
GoType string `yaml:"go_type"`
} `yaml:"overrides"`
} `yaml:"go"`
} `yaml:"gen"`
} `yaml:"sql"`
}
type SQLiteTypeMapper ¶
type SQLiteTypeMapper struct {
// contains filtered or unexported fields
}
SQLiteTypeMapper implements DatabaseTypeMapper for SQLite
func NewSQLiteTypeMapper ¶
func NewSQLiteTypeMapper() *SQLiteTypeMapper
NewSQLiteTypeMapper creates a new SQLite type mapper
func (*SQLiteTypeMapper) GenerateConversionFromDB ¶
func (stm *SQLiteTypeMapper) GenerateConversionFromDB(fieldName, sqlcType, goType string) string
GenerateConversionFromDB generates conversion code from SQLite to Go type
func (*SQLiteTypeMapper) GenerateConversionToDB ¶
func (stm *SQLiteTypeMapper) GenerateConversionToDB(sqlcType, goType, valueExpr string) string
GenerateConversionToDB generates conversion code from Go to SQLite type
func (*SQLiteTypeMapper) GenerateZeroCheck ¶
func (stm *SQLiteTypeMapper) GenerateZeroCheck(goType, valueExpr string) string
GenerateZeroCheck generates zero-value check code for a Go type
func (*SQLiteTypeMapper) GetDatabaseType ¶
func (stm *SQLiteTypeMapper) GetDatabaseType() string
GetDatabaseType returns the database type
func (*SQLiteTypeMapper) MapToGoType ¶
func (stm *SQLiteTypeMapper) MapToGoType(column *catalog.Column) (TypeMapping, error)
MapToGoType maps a SQLite column to a Go type
func (*SQLiteTypeMapper) MapToSQLType ¶
func (stm *SQLiteTypeMapper) MapToSQLType(goType string, nullable bool) (string, error)
MapToSQLType maps a Go type to a SQLite type
type TypeConversionService ¶
type TypeConversionService struct {
// contains filtered or unexported fields
}
TypeConversionService manages database-specific type mappers
func NewTypeConversionService ¶
func NewTypeConversionService() *TypeConversionService
NewTypeConversionService creates a new type conversion service
func (*TypeConversionService) GenerateConversionFromDB ¶
func (tcs *TypeConversionService) GenerateConversionFromDB( databaseType, fieldName, sqlcType, goType string, ) string
GenerateConversionFromDB generates conversion code from database to Go type
func (*TypeConversionService) GenerateConversionToDB ¶
func (tcs *TypeConversionService) GenerateConversionToDB( databaseType, sqlcType, goType, valueExpr string, ) string
GenerateConversionToDB generates conversion code from Go to database type
func (*TypeConversionService) GenerateZeroCheck ¶
func (tcs *TypeConversionService) GenerateZeroCheck(databaseType, goType, valueExpr string) string
GenerateZeroCheck generates zero-value check code for a Go type
func (*TypeConversionService) GetMapper ¶
func (tcs *TypeConversionService) GetMapper(databaseType string) (DatabaseTypeMapper, error)
GetMapper returns the type mapper for the specified database type
func (*TypeConversionService) MapToGoType ¶
func (tcs *TypeConversionService) MapToGoType( databaseType string, column *catalog.Column, ) (TypeMapping, error)
MapToGoType maps a database column to a Go type using the appropriate mapper
func (*TypeConversionService) MapToSQLType ¶
func (tcs *TypeConversionService) MapToSQLType( databaseType, goType string, nullable bool, ) (string, error)
MapToSQLType maps a Go type to a SQL type using the appropriate mapper
func (*TypeConversionService) RegisterMapper ¶
func (tcs *TypeConversionService) RegisterMapper(databaseType string, mapper DatabaseTypeMapper)
RegisterMapper registers a new type mapper for a database type
type TypeMapper ¶
type TypeMapper struct {
DatabaseType string
TypeMap map[string]string
Overrides []TypeOverride
}
func NewTypeMapper ¶
func NewTypeMapper(databaseType string) *TypeMapper
func (*TypeMapper) GenerateConversionFromDB ¶
func (tm *TypeMapper) GenerateConversionFromDB(fieldName, sqlcType, goType string) string
func (*TypeMapper) GenerateConversionToDB ¶
func (tm *TypeMapper) GenerateConversionToDB( sqlcType string, goType string, valueExpr string, ) string
func (*TypeMapper) GenerateZeroCheck ¶
func (tm *TypeMapper) GenerateZeroCheck( goType string, valueExpr string, ) string
func (*TypeMapper) GetDatabaseType ¶
func (tm *TypeMapper) GetDatabaseType() string
func (*TypeMapper) MapSQLTypeToGo ¶
func (tm *TypeMapper) MapSQLTypeToGo( sqlType string, nullable bool, ) (goType, sqlcType, packageName string, err error)
type TypeMapping ¶
TypeMapping represents the result of type mapping