types

package
v0.32.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 24, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoTypeMapperFound = errors.New("no type mapper found for database type")
	ErrUnsupportedType   = errors.New("unsupported database type")
)

Functions

func FormatCamelCase

func FormatCamelCase(dbColumnName string) string

func FormatDisplayName

func FormatDisplayName(dbColumnName string) string

func FormatFieldName

func FormatFieldName(dbColumnName string) string

func ValidateSQLCConfig

func ValidateSQLCConfig(projectPath string) error

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

type TypeMapping struct {
	GoType      string
	SQLCType    string
	PackageName string
}

TypeMapping represents the result of type mapping

type TypeOverride

type TypeOverride struct {
	DatabaseType string
	GoType       string
	Package      string
	Nullable     bool
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL