Documentation ¶
Overview ¶
Package sql provides tools and DAOs for speaking SQL as well as managing tables migrations
Index ¶
- Variables
- func CountStringFromExpression(tableName string, columnCount string, driver string, e Enquirer, ...) (string, []interface{}, error)
- func DeleteStringFromExpression(tableName string, driver string, ex goqu.Expression) (string, []interface{}, error)
- func ExecMax(db *sql.DB, dialect string, m migrate.MigrationSource, ...) (int, error)
- func ExecMigration(db *sql.DB, dialect string, m migrate.MigrationSource, ...) (int, error)
- func GetExpressionForString(neq bool, field string, values ...string) (expression goqu.Expression)
- func GetQueryValueFor(field string, values ...string) string
- func JoinWheresWithParenthesis(wheres []string, join string) string
- func LockMigratePackage()
- func NewDAOQuery(enquirer Enquirer, converters ...common.Converter) fmt.Stringer
- func PlanMigration(db *sql.DB, dialect string, m migrate.MigrationSource, ...) ([]*migrate.PlannedMigration, *gorp.DbMap, error)
- func QueryStringFromExpression(tableName string, driver string, e Enquirer, ex goqu.Expression, ...) (string, []interface{}, error)
- func SetSchema(name string)
- func SetTable(name string)
- func UnlockMigratePackage()
- type BatchReceiver
- type BatchSender
- type DAO
- type Enquirer
- type ExpressionConverter
- type Expressioner
- type Handler
- func (h *Handler) Concat(s ...string) string
- func (h *Handler) DB() *sql.DB
- func (h *Handler) GetStmt(key string, args ...interface{}) (Stmt, error)
- func (h *Handler) GetStmtWithArgs(key string, params ...interface{}) (Stmt, []interface{}, error)
- func (h *Handler) Hash(s ...string) string
- func (h *Handler) HashParent(name string, mpath ...string) string
- func (h *Handler) Init(c configx.Values) error
- func (h *Handler) Lock()
- func (h *Handler) Prepare(key string, query interface{}) error
- func (h *Handler) Unlock()
- func (h *Handler) UseExclusion()
- func (h *Handler) Version() (string, error)
- type Helper
- type PackrBox
- type PackrMigrationSource
- type Scanner
- type Stmt
Constants ¶
This section is empty.
Variables ¶
var ( DefaultConnectionTimeout = 10 * time.Second ErrNoRows = sql.ErrNoRows )
Functions ¶
func CountStringFromExpression ¶ added in v1.0.1
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 ¶ added in v1.0.1
func DeleteStringFromExpression(tableName string, driver string, ex goqu.Expression) (string, []interface{}, error)
DeleteStringFromExpression creates sql for DELETE FROM expression
func ExecMax ¶ added in v1.0.1
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 ¶ added in v1.0.1
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 ¶ added in v1.0.1
GetExpressionForString creates correct goqu.Expression for field + string value
func GetQueryValueFor ¶
GetQueryValueFor field value
func JoinWheresWithParenthesis ¶
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 ¶
NewDAOQuery adds database functionality to a Query proto message
func PlanMigration ¶ added in v1.0.1
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 ¶ added in v1.0.1
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 ¶ added in v1.0.1
func SetSchema(name string)
SetSchema sets the name of a schema that the migration table be referenced.
func SetTable ¶ added in v1.0.1
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 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{}) (Stmt, error) GetStmtWithArgs(string, ...interface{}) (Stmt, []interface{}, error) UseExclusion() Lock() Unlock() // Helper functions for expressions that can differ from one dao to another Concat(...string) string Hash(...string) string HashParent(string, ...string) string }
DAO interface definition
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 ¶ added in v1.0.1
ExpressionConverter ...
type Expressioner ¶ added in v1.0.1
type Expressioner interface {
Expression(driver string) goqu.Expression
}
Expressioner ...
func NewQueryBuilder ¶ added in v1.0.1
func NewQueryBuilder(e Enquirer, c ...ExpressionConverter) Expressioner
NewQueryBuilder generates SQL request from object
type Handler ¶
Handler for the main functions of the DAO
func (*Handler) GetStmtWithArgs ¶ added in v1.5.0
GetStmt returns a list of all statements used by the dao
func (*Handler) UseExclusion ¶
func (h *Handler) UseExclusion()
type PackrBox ¶
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 Stmt ¶
type Stmt interface { Close() error GetSQLStmt() *sql.Stmt Exec(...interface{}) (sql.Result, error) ExecContext(context.Context, ...interface{}) (sql.Result, error) Query(...interface{}) (*sql.Rows, error) QueryContext(context.Context, ...interface{}) (*sql.Rows, error) QueryRow(...interface{}) *sql.Row QueryRowContext(context.Context, ...interface{}) *sql.Row }
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package index provides ready-to-use tables and DAOs for storing hierarchical data using the nested sets pattern
|
Package index provides ready-to-use tables and DAOs for storing hierarchical data using the nested sets pattern |
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 |