proxy

package module
v0.0.0-...-e92380a Latest Latest
Warning

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

Go to latest
Published: Oct 10, 2021 License: MIT Imports: 3 Imported by: 0

README

reform-proxy

A simple (embedded) database proxy for primary/secondary splitting using reform orm.

The secondary nodes are selected using round-robin algorithm, inspired by hlts2's implementation or round-robin.

PkgGoDev Tests Go Report Card

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DB

type DB interface {
	DBReader
	DBWriter
}

DB interface.

type DBCounter

type DBCounter interface {
	Count(view reform.View, tail string, args ...interface{}) (int, error)
}

DBCounter interface.

type DBDeleter

type DBDeleter interface {
	Delete(record reform.Record) error
	DeleteFrom(view reform.View, tail string, args ...interface{}) (uint, error)
}

DBDeleter interface.

type DBFinder

type DBFinder interface {
	FindOneTo(str reform.Struct, column string, arg interface{}) error
	FindOneFrom(view reform.View, column string, arg interface{}) (reform.Struct, error)
	FindRows(view reform.View, column string, arg interface{}) (*sql.Rows, error)
	FindAllFrom(view reform.View, column string, args ...interface{}) ([]reform.Struct, error)
	FindByPrimaryKeyTo(record reform.Record, pk interface{}) error
	FindByPrimaryKeyFrom(table reform.Table, pk interface{}) (reform.Record, error)
}

DBFinder interface.

type DBInserter

type DBInserter interface {
	Insert(str reform.Struct) error
	InsertColumns(str reform.Struct, columns ...string) error
	InsertMulti(structs ...reform.Struct) error
}

DBInserter interface.

type DBReader

type DBReader interface {
	DBSelector
	DBFinder
	DBCounter
}

DBReader interface.

type DBSaver

type DBSaver interface {
	Save(record reform.Record) error
}

DBSaver interface.

type DBSelector

type DBSelector interface {
	SelectOneTo(str reform.Struct, tail string, args ...interface{}) error
	SelectOneFrom(view reform.View, tail string, args ...interface{}) (reform.Struct, error)
	SelectRows(view reform.View, tail string, args ...interface{}) (*sql.Rows, error)
	SelectAllFrom(view reform.View, tail string, args ...interface{}) ([]reform.Struct, error)
}

DBSelector interface.

type DBUpdater

type DBUpdater interface {
	Update(record reform.Record) error
	UpdateColumns(record reform.Record, columns ...string) error
	UpdateView(str reform.Struct, columns []string, tail string, args ...interface{}) (uint, error)
}

DBUpdater interface.

type DBWriter

type DBWriter interface {
	DBInserter
	DBUpdater
	DBSaver
	DBDeleter
}

DBWriter interface.

type Proxy

type Proxy interface {
	DB

	// Primary returns primary database node.
	Primary() DB

	// Secondaries returns list of all secondary database nodes.
	Secondaries() []DB

	// Secondary returns the next secondary node.
	Secondary() DB
}

Proxy interface.

func New

func New(primary DB, secondaries ...DB) Proxy

New returns new proxy.

Jump to

Keyboard shortcuts

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