Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GeneratorToSql ¶ added in v0.5.0
func GeneratorToSql(g SqlGenerator) string
GeneratorToSql generates SQL from a generator
Types ¶
type JsonBuildArrayBuilder ¶ added in v0.5.0
type JsonBuildArrayBuilder struct {
// contains filtered or unexported fields
}
JsonBuildArrayBuilder is a builder for a JSON_BUILD_ARRAY function. It is immutable and safe for concurrent use.
func JsonBuildArray ¶ added in v0.5.0
func JsonBuildArray() JsonBuildArrayBuilder
JsonBuildArray starts a builder for a JSON_BUILD_ARRAY function
func (JsonBuildArrayBuilder) Append ¶ added in v0.5.0
func (b JsonBuildArrayBuilder) Append(value SqlGenerator) JsonBuildArrayBuilder
Append returns a new builder with added array entry at the end for a value (SQL generator like Exp)
func (JsonBuildArrayBuilder) GenerateSql ¶ added in v0.5.0
func (b JsonBuildArrayBuilder) GenerateSql(sb *strings.Builder)
GenerateSql implements SqlGenerator
func (JsonBuildArrayBuilder) ToSql ¶ added in v0.5.0
func (b JsonBuildArrayBuilder) ToSql() string
ToSql returns SQL for the builder
type JsonBuildObjectBuilder ¶
type JsonBuildObjectBuilder struct {
// contains filtered or unexported fields
}
JsonBuildObjectBuilder is a builder for a JSON_BUILD_OBJECT function. It is immutable and safe for concurrent use.
func JsonBuildObject ¶
func JsonBuildObject() JsonBuildObjectBuilder
JsonBuildObject starts a builder for a JSON_BUILD_OBJECT function
func (JsonBuildObjectBuilder) Delete ¶
func (b JsonBuildObjectBuilder) Delete(propertyName string) JsonBuildObjectBuilder
Delete returns a new builder with removed property name from the mapping
func (JsonBuildObjectBuilder) GenerateSql ¶
func (b JsonBuildObjectBuilder) GenerateSql(sb *strings.Builder)
GenerateSql implements SqlGenerator
func (JsonBuildObjectBuilder) Set ¶
func (b JsonBuildObjectBuilder) Set(propertyName string, value SqlGenerator) JsonBuildObjectBuilder
Set returns a new builder with added or updated mapping from a property name to a value (SQL generator like Exp).
func (JsonBuildObjectBuilder) ToSql ¶
func (b JsonBuildObjectBuilder) ToSql() string
ToSql returns SQL for the builder
type SqlGenerator ¶
SqlGenerator is an interface for all types that generate SQL by appending to a given strings.Builder
func ExpIfNotNull ¶ added in v0.5.0
func ExpIfNotNull(conditionExp string, then SqlGenerator) SqlGenerator
ExpIfNotNull generates SQL for a conditional generator. It is particularly useful when nesting JSON_BUILD_OBJECT for eagerly fetched relations that can be NULL.
It results in CASE WHEN [conditionExp] IS NOT NULL THEN [then] END. It will have a NULL result if conditionExp is NULL.
Example:
JsonBuildObject().
Set("related", ExpIfNotNull("related_id", JsonBuildObject().Set("ID", Exp("related_id"))))