pgx

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2025 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package pgx provides helpers for working with the Postgres database using the github.com/jackc/pgx driver. Should be imported explicitly. To register postgres as retryable func use side effect import like so:

import _ "github.com/acronis/go-dbkit/pgx"

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckInvalidCachedPlanError

func CheckInvalidCachedPlanError(err error) bool

CheckInvalidCachedPlanError checks if the passed error is related to the invalid cached plan. By default, https://github.com/jackc/pgx has a cache for prepared statements (https://github.com/jackc/pgx/wiki/Automatic-Prepared-Statement-Caching), which can lead to the error "cached plan must not change result type (SQLSTATE 0A000)" for queries like `SELECT * FROM table` in case of the schema changes (e.g. column was added during the migration). It's recommended to handle this error as retryable since the statement cache will be invalidated, and the query will be re-prepared (it's done automatically by the driver).

func CheckPostgresError

func CheckPostgresError(err error, errCode ErrCode) bool

CheckPostgresError checks if the passed error relates to Postgres, and it's internal code matches the one from the argument.

Types

type ErrCode added in v0.3.0

type ErrCode string

ErrCode defines the type for Pgx error codes.

const (
	ErrCodeUniqueViolation      ErrCode = "23505"
	ErrCodeDeadlockDetected     ErrCode = "40P01"
	ErrCodeSerializationFailure ErrCode = "40001"
	ErrFeatureNotSupported      ErrCode = "0A000"
)

Pgx error codes (will be filled gradually).

Jump to

Keyboard shortcuts

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