Documentation
¶
Index ¶
- Constants
- Variables
- func IsErrorCode(err error, errCode pq.ErrorCode) bool
- func NullStringToString(value sql.NullString) string
- func NullStringToStringPointer(value sql.NullString) *string
- func NullTimeToTimePointer(value sql.NullTime) *time.Time
- func TimePointerToNullTime(value *time.Time) sql.NullTime
- func TryCastErrorToPgError(err error) any
- type DbConnection
- type PgConfig
- type Postgres
Constants ¶
View Source
const ( DuplicateKeyErrorCode = pq.ErrorCode("23505") ForeignKeyViolationErrorCode = pq.ErrorCode("23503") )
View Source
const MaxQueryParams = 65534
Variables ¶
View Source
var ( ErrBeginTransactionFailed = errors.New("begin transaction failed") ErrCommitTransactionFailed = errors.New("commit transaction failed") ErrRollbackTransactionFailed = errors.New("revert transaction failed") ErrCommitWithoutTransaction = errors.New("invalid transaction, can not perform commit without transaction") ErrRollbackWithoutTransaction = errors.New("invalid transaction, can not perform rollback without transaction") ErrNoPgConnection = errors.New("postgres connection is not established") )
Functions ¶
func NullStringToString ¶
func NullStringToString(value sql.NullString) string
func NullStringToStringPointer ¶
func NullStringToStringPointer(value sql.NullString) *string
func TryCastErrorToPgError ¶
Types ¶
type DbConnection ¶
type DbConnection interface {
SetSqlConnection(db *sqlx.DB)
EnableQueryLogging()
Ping() error
BeginTx(ctx context.Context) (DbConnection, error)
Commit() error
Rollback() error
Rebind(query string) string
PrepareNamed(query string) (*sqlx.NamedStmt, error)
Exec(ctx context.Context, query string, args ...interface{}) (sql.Result, error)
Get(ctx context.Context, dest interface{}, query string, args ...interface{}) error
NamedExec(ctx context.Context, query string, arg interface{}) (sql.Result, error)
NamedQuery(ctx context.Context, query string, arg interface{}) (*sqlx.Rows, error)
Queryx(ctx context.Context, query string, args ...interface{}) (*sqlx.Rows, error)
QueryRowx(ctx context.Context, query string, args ...interface{}) *sqlx.Row
}
func NewDbConnection ¶
func NewDbConnection(db *sqlx.DB) DbConnection
func NewEmptyDbConnection ¶
func NewEmptyDbConnection() DbConnection
func NewFakeDbConnection ¶
func NewFakeDbConnection() DbConnection
NewFakeDbConnection creates a new instance of a fake database connection that implements the DbConnection interface. All methods return nil value for sql.Result, *sqlx.Row, *sqlx.Rows, and nil error. Intended to be used in repository mocks in tests with service-layer transaction logic.
Click to show internal directories.
Click to hide internal directories.