Documentation
¶
Index ¶
- Constants
- Variables
- func Except(cols []string, excludes ...string) []string
- func Only(cols []string, includes ...string) []string
- func SkipHooks(ctx context.Context) context.Context
- type Columns
- func (c Columns) Except(cols ...string) Columns
- func (c Columns) Names() []string
- func (c Columns) Only(cols ...string) Columns
- func (c Columns) WithAggFunc(a, b string) Columns
- func (c Columns) WithParent(p ...string) Columns
- func (c Columns) WithPrefix(prefix string) Columns
- func (c Columns) WriteSQL(w io.Writer, d bob.Dialect, start int) ([]any, error)
- type Hook
- type Hooks
- type RelSetDetails
- type RelSetMapping
- type RelSide
- type RelWhere
- type Relationship
- type RelationshipChainError
Constants ¶
View Source
const ( // The alias of an eager loader's parent CtxLoadParentAlias ctxKey = iota // A schema to use when non was specified during generation CtxUseSchema )
Variables ¶
Functions ¶
Types ¶
type Columns ¶
type Columns struct {
// contains filtered or unexported fields
}
func NewColumns ¶
NewColumns returns a Columns object with the given column names
func (Columns) WithAggFunc ¶
func (Columns) WithParent ¶
WithPrefix sets the parent of the columns
func (Columns) WithPrefix ¶
WithPrefix sets the prefix of the aliases of the column set
type Hook ¶ added in v0.2.3
Hook is a function that can be called during lifecycle of an object the context can be modified and returned The caller is expected to use the returned context for subsequent processing
type Hooks ¶ added in v0.2.3
type Hooks[T any] struct { // contains filtered or unexported fields }
Hooks is a set of hooks that can be called all at once
type RelSetDetails ¶ added in v0.6.1
type RelSetDetails struct {
TableName string
Mapped []RelSetMapping
Start bool
End bool
}
type RelSetMapping ¶ added in v0.6.1
type RelSide ¶ added in v0.2.1
type RelSide struct {
From string `yaml:"from"`
To string `yaml:"to"`
// To make sure the column lengths match and are in the right order,
// a slice of tupules is expected.
// bobgen-helpers.GenConfig has a function to spread that into From/ToColumns
Columns [][2]string `yaml:"columns"`
FromColumns []string `yaml:"-"`
ToColumns []string `yaml:"-"`
FromWhere []RelWhere `yaml:"from_where"`
ToWhere []RelWhere `yaml:"to_where"`
// If the destination columns contain the key
// if false, it means the source columns are the foreign key
ToKey bool `yaml:"to_key"`
// if the destination is unique
ToUnique bool `yaml:"to_unique"`
// If the key is nullable. We need this to know if we can remove the
// relationship without deleting it
KeyNullable bool `yaml:"key_nullable"`
// Kinda hacky, used for preloading
ToExpr func(context.Context) bob.Expression `json:"-" yaml:"-"`
}
type Relationship ¶
type Relationship struct {
Name string `yaml:"name"`
ByJoinTable bool `yaml:"by_join_table"`
Sides []RelSide `yaml:"sides"`
// These can be set through user configuration
Ignored bool
// Do not create the inverse of a user configured relationship
NoReverse bool `yaml:"no_reverse"`
// if present is used instead of computing from the columns
// only expected to be set by drivers not by configuration
// configuration should set aliases though the alias configuration
Alias string `yaml:"-"`
}
func (Relationship) Foreign ¶ added in v0.6.1
func (r Relationship) Foreign() string
func (Relationship) InsertEarly ¶ added in v0.6.1
func (r Relationship) InsertEarly() bool
func (Relationship) IsRemovable ¶ added in v0.6.1
func (r Relationship) IsRemovable() bool
func (Relationship) IsToMany ¶ added in v0.6.1
func (r Relationship) IsToMany() bool
func (Relationship) Local ¶ added in v0.6.1
func (r Relationship) Local() string
func (Relationship) NeededColumns ¶ added in v0.6.1
func (r Relationship) NeededColumns() []string
func (Relationship) ValuedSides ¶ added in v0.6.1
func (r Relationship) ValuedSides() []RelSetDetails
type RelationshipChainError ¶ added in v0.6.1
type RelationshipChainError struct {
Table1 string
Column1 string
Value string
Table2 string
Column2 string
}
RelationshipChainError is the error returned when a wrong value is encountered in a relationship chain
func (*RelationshipChainError) Error ¶ added in v0.6.1
func (e *RelationshipChainError) Error() string
Click to show internal directories.
Click to hide internal directories.