json

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Oct 6, 2022 License: MIT Imports: 3 Imported by: 0

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

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

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

type SqlGenerator interface {
	GenerateSql(sb *strings.Builder)
}

SqlGenerator is an interface for all types that generate SQL by appending to a given strings.Builder

func Exp

func Exp(exp string) SqlGenerator

Exp generates SQL for an arbitrary SQL expression

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"))))

Jump to

Keyboard shortcuts

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