Documentation
¶
Index ¶
Constants ¶
const Version = "0.0.8"
Version indicates package version
Variables ¶
This section is empty.
Functions ¶
func NewDatabase ¶
NewDatabase creates a new instance of DALgo adapter to SQL database.
The returned dal.DB is sealed by dal.NewDB: every read-write transaction it starts hands the worker a transaction whose writes run the framework's BeforeSave validation and hooks before reaching this adapter's code.
func NewSimpleSchema ¶ added in v0.2.1
Types ¶
type DbOptions ¶ added in v0.4.2
type DbOptions struct {
ID string
PrimaryKey []string
Recordsets map[string]*Recordset
// Placeholder controls how SQL parameter markers are emitted.
// The zero value (PlaceholderQuestion) uses "?" — compatible with
// SQLite, MySQL, and most other drivers. Set to PlaceholderDollar
// for PostgreSQL, which requires "$1", "$2", … positional markers.
Placeholder PlaceholderDialect
// IsAlreadyExists reports whether err — the raw error returned by the
// underlying database/sql driver for a failed INSERT — represents a
// duplicate-key violation (a unique or primary-key constraint failure).
// Detection is driver-specific — pgx's *pgconn.PgError with code
// "23505", go-sql-driver/mysql's *mysql.MySQLError with number 1062,
// modernc.org/sqlite's *sqlite.Error with an SQLITE_CONSTRAINT_* code —
// so dalgo2sql cannot recognize it on its own. The wrapping adapter
// (dalgo2postgres, dalgo2mysql, dalgo2sqlite, …) supplies this hook.
//
// The zero value (nil) is backward compatible: it preserves today's
// behavior exactly, and the raw driver error passes through unwrapped.
// When set and it reports true for an insert's error, dalgo2sql wraps
// that error with record.ErrRecordExists (see execInsert) so callers
// can test it with record.IsAlreadyExists — the driver error itself is
// preserved in the chain, never replaced, so existing callers matching
// on error text or type keep working.
IsAlreadyExists func(err error) bool
}
DbOptions provides database sqlOptions for DALgo - // TODO: document why & how to use
func (DbOptions) GetRecordsetByKey ¶ added in v0.4.2
type PlaceholderDialect ¶ added in v0.9.0
type PlaceholderDialect int
PlaceholderDialect selects how positional SQL parameters are formatted. The zero value (PlaceholderQuestion) is backward-compatible with all drivers that accept "?" — SQLite, MySQL, etc.
const ( // PlaceholderQuestion emits "?" for every parameter (default, SQLite/MySQL style). PlaceholderQuestion PlaceholderDialect = iota // PlaceholderDollar emits "$1", "$2", … (PostgreSQL style). PlaceholderDollar )
type Recordset ¶
type Recordset struct {
// contains filtered or unexported fields
}
Recordset hold recordset settings
func NewRecordset ¶ added in v0.0.9
func NewRecordset(name string, t RecordsetType, primaryKey []dal.FieldRef) *Recordset
func (*Recordset) PrimaryKey ¶
func (*Recordset) PrimaryKeyFieldNames ¶ added in v0.0.9
func (*Recordset) Type ¶
func (v *Recordset) Type() RecordsetType
type RecordsetType ¶
type RecordsetType = int
RecordsetType defines type of a database recordset
const ( // Table identifies a table in a database Table RecordsetType = iota )