database

package
v0.0.0-...-2de04ff Latest Latest
Warning

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

Go to latest
Published: Mar 24, 2023 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var LCMServiceSQLDB = common.LCMService{
	Name:         common.LCMServiceNameSQL,
	Dependencies: []string{"log", "config"},
	Startup: func(deps []interface{}) error {
		log := deps[0].(*log2.Logger)
		cfg := deps[1].(*common.Config)
		if cfg == nil {
			return errors.New("config is empty")
		}

		_, err := getDatabase(&cfg.DB, log)
		return err
	},
	GetSvc: func() interface{} {
		db, _ := getDatabase(nil, nil)
		return db
	},
	Shutdown: func() error {
		return closeSQLDatabase()
	},
}

Functions

func QueryArgs

func QueryArgs(args ...interface{}) []interface{}

func QueryRowResolver

func QueryRowResolver(results ...any) func(any) error

func QueryRowsResolver

func QueryRowsResolver(processRow func() error, targets ...any) func(any) error

QueryRowsResolver takes in a set of column targets

Types

type Database

type Database struct {
	// contains filtered or unexported fields
}

func (*Database) GetTransaction

func (db *Database) GetTransaction(opt *GetTransactionOptions) (*Transaction, error)

func (*Database) Name

func (db *Database) Name() string

func (*Database) Tx

func (db *Database) Tx(ops []TxOP) error

type GetTransactionOptions

type GetTransactionOptions struct {
	SetDatabase *bool // nil = true
}

func (*GetTransactionOptions) GetValues

func (opt *GetTransactionOptions) GetValues() (setDatabase bool)

type JsonResolveTarget

type JsonResolveTarget struct {
	Target any
	// contains filtered or unexported fields
}

func (*JsonResolveTarget) BuildArg

func (j *JsonResolveTarget) BuildArg() interface{}

func (*JsonResolveTarget) Resolve

func (j *JsonResolveTarget) Resolve() error

func (*JsonResolveTarget) Substitute

func (j *JsonResolveTarget) Substitute() any

type OpType

type OpType uint
const (
	OpTypeManip OpType = iota // Only manipulating data, not reading.
	OpTypeQuery               // Reading data
	OpTypeQueryRow
)

type QueryArgBuilder

type QueryArgBuilder interface {
	BuildArg() interface{} // from something unusable to something usable
}

type SpecialResolveTarget

type SpecialResolveTarget interface {
	Substitute() any // create a false Target that row.Scan can use
	Resolve() error  // truly resolve it
}

type Transaction

type Transaction struct {
	// contains filtered or unexported fields
}

func (*Transaction) Commit

func (tx *Transaction) Commit() error

func (*Transaction) Do

func (tx *Transaction) Do(ops []TxOP) error

func (*Transaction) Logf

func (tx *Transaction) Logf(format string, inputs ...any)

func (*Transaction) LogfCalldepth

func (tx *Transaction) LogfCalldepth(calldepth int, format string, inputs ...any)

func (*Transaction) Rollback

func (tx *Transaction) Rollback() error

type TxOP

type TxOP struct {
	Op OpType
	//language=SQL
	Query    string
	Args     []interface{}
	Resolver func(i interface{}) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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