genpg

package
v0.0.0-...-86a089b Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2019 License: BSD-2-Clause Imports: 11 Imported by: 0

Documentation

Overview

Package genpg provides code generation helpers postgresql query and schema generation.

Index

Constants

View Source
const (
	PrecOr
	PrecAnd
	PrecNot
	PrecIs  // , is null, is not null, …
	PrecCmp // <, >, =, <=, >=, <>, !=
	PrecIn  // , between, like, ilike, similar
	PrecDef
	PrecAdd // +, -
	PrecMul // *, /, %
)

Variables

View Source
var External = cor.StrError("external symbol")

Functions

func TypString

func TypString(t typ.Type) (string, error)

func WriteFile

func WriteFile(fname string, p *dom.Project, s *dom.Schema) error

func WriteLit

func WriteLit(b *Writer, l lit.Lit) error

WriteLit renders the literal l to b or returns an error.

func WriteQuote

func WriteQuote(w bfr.B, text string)

WriteQuote quotes a string as a postgres string, all single quotes are use sql escaping.

Types

type ExpEnv

type ExpEnv struct{}

func (ExpEnv) Translate

func (ee ExpEnv) Translate(env exp.Env, s *exp.Sym) (string, lit.Lit, error)

type Param

type Param struct {
	Name  string
	Type  typ.Type
	Value lit.Lit
}

type Translator

type Translator interface {
	Translate(exp.Env, *exp.Sym) (string, lit.Lit, error)
}

type Writer

type Writer struct {
	gen.Gen
	Translator
	Params []Param
}

func NewWriter

func NewWriter(b bfr.B, t Translator) *Writer

func (*Writer) Translate

func (w *Writer) Translate(env exp.Env, s *exp.Sym) (string, lit.Lit, error)

func (*Writer) WriteEl

func (w *Writer) WriteEl(env exp.Env, e exp.El) error

WriteEl writes the element e to b or returns an error. This is used for explicit selectors for example.

func (*Writer) WriteEnum

func (w *Writer) WriteEnum(m *dom.Model) error

func (*Writer) WriteExpr

func (w *Writer) WriteExpr(env exp.Env, e *exp.Call) error

WriteExpr writes the expression e to b using env or returns an error. Most xelf expressions with resolvers from the core or lib built-ins have a corresponding expression in postgresql. Custom resolvers can be rendered to sql by detecting and handling them before calling this function.

func (*Writer) WriteSchema

func (w *Writer) WriteSchema(s *dom.Schema) (err error)

func (*Writer) WriteTable

func (w *Writer) WriteTable(m *dom.Model) error

Jump to

Keyboard shortcuts

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