Documentation ¶
Index ¶
- Variables
- func Validate(c *Config) error
- type Codegen
- type CombinedSettings
- type Config
- type Engine
- type Gen
- type GenGo
- type GoStructTag
- type GoType
- type Override
- type ParsedGoType
- type Paths
- type Plugin
- type Project
- type PythonType
- type SQL
- type SQLGen
- type SQLGo
- type SQLJSON
- type V1GenerateSettings
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrInvalidQueryParameterLimit = errors.New("invalid query parameter limit")
View Source
var ErrMissingEngine = errors.New("unknown engine")
View Source
var ErrMissingVersion = errors.New("no version number")
View Source
var ErrNoOutPath = errors.New("no output path")
View Source
var ErrNoPackageName = errors.New("missing package name")
View Source
var ErrNoPackagePath = errors.New("missing package path")
View Source
var ErrNoPackages = errors.New("no packages")
View Source
var ErrNoQuerierType = errors.New("no querier emit type enabled")
View Source
var ErrPluginBothTypes = errors.New("plugin: both `process` and `wasm` cannot both be defined")
View Source
var ErrPluginBuiltin = errors.New("a built-in plugin with that name already exists")
View Source
var ErrPluginExists = errors.New("a plugin with that name already exists")
View Source
var ErrPluginNoName = errors.New("missing plugin name")
View Source
var ErrPluginNoType = errors.New("plugin: field `process` or `wasm` required")
View Source
var ErrPluginNotFound = errors.New("no plugin found")
View Source
var ErrPluginProcessNoCmd = errors.New("plugin: missing process command")
View Source
var ErrUnknownEngine = errors.New("invalid engine")
View Source
var ErrUnknownVersion = errors.New("invalid version number")
Functions ¶
Types ¶
type Codegen ¶
type Codegen struct { Out string `json:"out" yaml:"out"` Plugin string `json:"plugin" yaml:"plugin"` Options yaml.Node `json:"options" yaml:"options"` }
TODO: Figure out a better name for this
type CombinedSettings ¶
type CombinedSettings struct { Global Config Package SQL Go SQLGo JSON SQLJSON Rename map[string]string Overrides []Override // TODO: Combine these into a more usable type Codegen Codegen }
func Combine ¶
func Combine(conf Config, pkg SQL) CombinedSettings
type Config ¶
type GoType ¶
type GoType struct { Path string `json:"import" yaml:"import"` Package string `json:"package" yaml:"package"` Name string `json:"type" yaml:"type"` Pointer bool `json:"pointer" yaml:"pointer"` Spec string BuiltIn bool }
func (*GoType) UnmarshalJSON ¶
func (*GoType) UnmarshalYAML ¶
type Override ¶
type Override struct { // name of the golang type to use, e.g. `github.com/segmentio/ksuid.KSUID` GoType GoType `json:"go_type" yaml:"go_type"` // additional Go struct tags to add to this field, in raw Go struct tag form, e.g. `validate:"required" x:"y,z"` // see https://github.com/StanVerse/sqld/issues/534 GoStructTag GoStructTag `json:"go_struct_tag" yaml:"go_struct_tag"` // fully qualified name of the Go type, e.g. `github.com/segmentio/ksuid.KSUID` DBType string `json:"db_type" yaml:"db_type"` Deprecated_PostgresType string `json:"postgres_type" yaml:"postgres_type"` // for global overrides only when two different engines are in use Engine Engine `json:"engine,omitempty" yaml:"engine"` // True if the GoType should override if the maching postgres type is nullable Nullable bool `json:"nullable" yaml:"nullable"` // Deprecated. Use the `nullable` property instead Deprecated_Null bool `json:"null" yaml:"null"` // fully qualified name of the column, e.g. `accounts.id` Column string `json:"column" yaml:"column"` ColumnName *pattern.Match TableCatalog *pattern.Match TableSchema *pattern.Match TableRel *pattern.Match GoImportPath string GoPackage string GoTypeName string GoBasicType bool // Parsed form of GoStructTag, e.g. {"validate:", "required"} GoStructTags map[string]string }
type ParsedGoType ¶
type PythonType ¶
type PythonType struct { Module string `json:"module" yaml:"module"` Name string `json:"name" yaml:"name"` }
func (PythonType) IsSet ¶
func (t PythonType) IsSet() bool
func (PythonType) TypeString ¶
func (t PythonType) TypeString() string
type SQL ¶
type SQL struct { Engine Engine `json:"engine,omitempty" yaml:"engine"` Schema Paths `json:"schema" yaml:"schema"` Queries Paths `json:"queries" yaml:"queries"` StrictFunctionChecks bool `json:"strict_function_checks" yaml:"strict_function_checks"` Gen SQLGen `json:"gen" yaml:"gen"` Codegen []Codegen `json:"codegen" yaml:"codegen"` }
type SQLGo ¶
type SQLGo struct { EmitInterface bool `json:"emit_interface" yaml:"emit_interface"` EmitJSONTags bool `json:"emit_json_tags" yaml:"emit_json_tags"` EmitDBTags bool `json:"emit_db_tags" yaml:"emit_db_tags"` EmitPreparedQueries bool `json:"emit_prepared_queries" yaml:"emit_prepared_queries"` EmitExactTableNames bool `json:"emit_exact_table_names,omitempty" yaml:"emit_exact_table_names"` EmitEmptySlices bool `json:"emit_empty_slices,omitempty" yaml:"emit_empty_slices"` EmitExportedQueries bool `json:"emit_exported_queries" yaml:"emit_exported_queries"` EmitResultStructPointers bool `json:"emit_result_struct_pointers" yaml:"emit_result_struct_pointers"` EmitParamsStructPointers bool `json:"emit_params_struct_pointers" yaml:"emit_params_struct_pointers"` EmitMethodsWithDBArgument bool `json:"emit_methods_with_db_argument,omitempty" yaml:"emit_methods_with_db_argument"` EmitPointersForNullTypes bool `json:"emit_pointers_for_null_types" yaml:"emit_pointers_for_null_types"` EmitEnumValidMethod bool `json:"emit_enum_valid_method,omitempty" yaml:"emit_enum_valid_method"` EmitAllEnumValues bool `json:"emit_all_enum_values,omitempty" yaml:"emit_all_enum_values"` JSONTagsCaseStyle string `json:"json_tags_case_style,omitempty" yaml:"json_tags_case_style"` Package string `json:"package" yaml:"package"` Out string `json:"out" yaml:"out"` Overrides []Override `json:"overrides,omitempty" yaml:"overrides"` Rename map[string]string `json:"rename,omitempty" yaml:"rename"` SQLPackage string `json:"sql_package" yaml:"sql_package"` OutputDBFileName string `json:"output_db_file_name,omitempty" yaml:"output_db_file_name"` OutputModelsFileName string `json:"output_models_file_name,omitempty" yaml:"output_models_file_name"` OutputQuerierFileName string `json:"output_querier_file_name,omitempty" yaml:"output_querier_file_name"` OutputFilesSuffix string `json:"output_files_suffix,omitempty" yaml:"output_files_suffix"` InflectionExcludeTableNames []string `json:"inflection_exclude_table_names,omitempty" yaml:"inflection_exclude_table_names"` }
type V1GenerateSettings ¶
type V1GenerateSettings struct { Version string `json:"version" yaml:"version"` Project Project `json:"project" yaml:"project"` Packages []v1PackageSettings `json:"packages" yaml:"packages"` Overrides []Override `json:"overrides,omitempty" yaml:"overrides,omitempty"` Rename map[string]string `json:"rename,omitempty" yaml:"rename,omitempty"` }
func (*V1GenerateSettings) Translate ¶
func (c *V1GenerateSettings) Translate() Config
func (*V1GenerateSettings) ValidateGlobalOverrides ¶
func (c *V1GenerateSettings) ValidateGlobalOverrides() error
Source Files ¶
Click to show internal directories.
Click to hide internal directories.