sql

package
v2.0.6+incompatible Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2020 License: AGPL-3.0 Imports: 23 Imported by: 0

Documentation

Overview

Package sql provides tools and DAOs for speaking SQL as well as managing tables migrations

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoRows = sql.ErrNoRows
)

Functions

func CountStringFromExpression

func CountStringFromExpression(tableName string, columnCount string, driver string, e Enquirer, ex goqu.Expression, resourceExpression goqu.Expression) (string, []interface{}, error)

QueryStringFromExpression finally builds a full SELECT from a Goqu Expression

func DeleteStringFromExpression

func DeleteStringFromExpression(tableName string, driver string, ex goqu.Expression) (string, []interface{}, error)

DeleteStringFromExpression creates sql for DELETE FROM expression

func ExecMax

func ExecMax(db *sql.DB, dialect string, m migrate.MigrationSource, dir migrate.MigrationDirection, max int, prefix string) (int, error)

Execute a set of migrations

Will apply at most `max` migrations. Pass 0 for no limit (or use Exec).

Returns the number of applied migrations.

func ExecMigration

func ExecMigration(db *sql.DB, dialect string, m migrate.MigrationSource, dir migrate.MigrationDirection, prefix string) (int, error)

Execute a set of migrations

Returns the number of applied migrations.

func GetExpressionForString

func GetExpressionForString(neq bool, field string, values ...string) (expression goqu.Expression)

GetExpressionForString creates correct goqu.Expression for field + string value

func GetQueryValueFor

func GetQueryValueFor(field string, values ...string) string

GetQueryValueFor field value

func JoinWheresWithParenthesis

func JoinWheresWithParenthesis(wheres []string, join string) string

JoinConditionsWithParenthesis joins conditions using parenthesis if there are many, or no parenthesis if there is just one, and prepend the WHERE keyword to the string

func LockMigratePackage

func LockMigratePackage()

LockMigratePackage sets a global lock on rubenv/migrate package

func NewDAOQuery

func NewDAOQuery(enquirer Enquirer, converters ...common.Converter) fmt.Stringer

NewDAOQuery adds database functionality to a Query proto message

func PlanMigration

func PlanMigration(db *sql.DB, dialect string, m migrate.MigrationSource, dir migrate.MigrationDirection, max int, prefix string) ([]*migrate.PlannedMigration, *gorp.DbMap, error)

Plan a migration.

func QueryStringFromExpression

func QueryStringFromExpression(tableName string, driver string, e Enquirer, ex goqu.Expression, resourceExpression goqu.Expression, limit int64) (string, []interface{}, error)

QueryStringFromExpression finally builds a full SELECT from a Goqu Expression

func SetSchema

func SetSchema(name string)

SetSchema sets the name of a schema that the migration table be referenced.

func SetTable

func SetTable(name string)

Set the name of the table used to store migration info.

Should be called before any other call such as (Exec, ExecMax, ...).

func UnlockMigratePackage

func UnlockMigratePackage()

UnlockMigratePackage frees the global lock on rubenv/migrate package

Types

type BatchReceiver

type BatchReceiver interface {
	Recv(interface{})
}

BatchReceiver interface

type BatchSender

type BatchSender interface {
	Send(interface{})
	Close() error
}

BatchSender interface

type DAO

type DAO interface {
	dao.DAO

	DB() *sql.DB
	Version() (string, error)
	Prepare(string, interface{}) error
	GetStmt(string, ...interface{}) (*sql.Stmt, error)
	GetStmtWithArgs(string, ...interface{}) (*sql.Stmt, []interface{}, error)
	UseExclusion()
	Lock()
	Unlock()
}

DAO interface definition

func NewDAO

func NewDAO(driver string, dsn string, prefix string) DAO

type Enquirer

type Enquirer interface {
	GetSubQueries() []*any.Any
	GetOperation() service.OperationType
	GetOffset() int64
	GetLimit() int64
	GetGroupBy() int32
	GetResourcePolicyQuery() *service.ResourcePolicyQuery

	fmt.Stringer
}

Enquirer interface

type ExpressionConverter

type ExpressionConverter interface {
	Convert(sub *any.Any, driver string) (goqu.Expression, bool)
}

ExpressionConverter ...

type Expressioner

type Expressioner interface {
	Expression(driver string) goqu.Expression
}

Expressioner ...

func NewQueryBuilder

func NewQueryBuilder(e Enquirer, c ...ExpressionConverter) Expressioner

NewQueryBuilder generates SQL request from object

type Handler

type Handler struct {
	dao.DAO
	// contains filtered or unexported fields
}

Handler for the main functions of the DAO

func (*Handler) DB

func (h *Handler) DB() *sql.DB

DB returns the sql DB object

func (*Handler) GetStmt

func (h *Handler) GetStmt(key string, args ...interface{}) (*sql.Stmt, error)

GetStmt returns a list of all statements used by the dao

func (*Handler) GetStmtWithArgs

func (h *Handler) GetStmtWithArgs(key string, params ...interface{}) (*sql.Stmt, []interface{}, error)

GetStmt returns a list of all statements used by the dao

func (*Handler) Init

func (h *Handler) Init(c common.ConfigValues) error

func (*Handler) Lock

func (h *Handler) Lock()

func (*Handler) Prepare

func (h *Handler) Prepare(key string, query interface{}) error

Prepare the statements that can be used by the DAO

func (*Handler) Unlock

func (h *Handler) Unlock()

func (*Handler) UseExclusion

func (h *Handler) UseExclusion()

func (*Handler) Version

func (h *Handler) Version() (string, error)

Version

type PackrBox

type PackrBox interface {
	List() []string
	Bytes(name string) []byte
}

Avoids pulling in the packr library for everyone, mimicks the bits of packr.Box that we need.

type PackrMigrationSource

type PackrMigrationSource struct {
	Box PackrBox

	// Path in the box to use.
	Dir string

	TablePrefix string
}

Migrations from a packr box.

func (PackrMigrationSource) FindMigrations

func (p PackrMigrationSource) FindMigrations() ([]*migrate.Migration, error)

type Scanner

type Scanner interface {
	Scan(...interface{}) error
}

Directories

Path Synopsis
Package index provides ready-to-use tables and DAOs for storing hierarchical data using the nested sets pattern * Copyright (c) 2018.
Package index provides ready-to-use tables and DAOs for storing hierarchical data using the nested sets pattern * Copyright (c) 2018.
Package resources provides ready-to-use SQL schemes and DAOs for attaching resource policies to any data
Package resources provides ready-to-use SQL schemes and DAOs for attaching resource policies to any data

Jump to

Keyboard shortcuts

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