errors

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: May 20, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package errors centralizes public error codes and classification helpers.

Keeping protocol-facing error strings in one package gives NornicDB a single place to manage retryability, wire-code mapping, and future localization.

Index

Constants

View Source
const (
	// TransientDeadlockDetected is the retryable wire error code for lock deadlocks.
	TransientDeadlockDetected = "Neo.TransientError.Transaction.DeadlockDetected"
	// TransientOutdated is the retryable wire error code for stale MVCC snapshots.
	TransientOutdated = "Neo.TransientError.Transaction.Outdated"
)

Variables

View Source
var (
	// ErrTransactionConflict aliases the storage conflict sentinel used when an
	// optimistic transaction observes data changed after its snapshot.
	ErrTransactionConflict = storage.ErrConflict
	// ErrMVCCResourcePressure aliases the storage admission sentinel used when a
	// snapshot cannot be kept alive under current MVCC pressure.
	ErrMVCCResourcePressure = storage.ErrMVCCResourcePressure
	// ErrMVCCSnapshotGracefulCancel aliases the storage sentinel for snapshots
	// cancelled during high MVCC pressure.
	ErrMVCCSnapshotGracefulCancel = storage.ErrMVCCSnapshotGracefulCancel
	// ErrMVCCSnapshotHardExpired aliases the storage sentinel for snapshots
	// forcibly expired during critical MVCC pressure.
	ErrMVCCSnapshotHardExpired = storage.ErrMVCCSnapshotHardExpired
	// ErrTransactionDeadlock marks lock-ordering deadlocks that drivers should
	// retry as Neo4j-compatible transient transaction failures.
	ErrTransactionDeadlock = stderrors.New("transaction deadlock")
	// ErrMergeCommitTimeUniqueConflict marks a commit-time UNIQUE violation from
	// a concurrent MERGE race. Retry-aware clients can safely replay because the
	// winner's committed node will be observed on the next attempt.
	ErrMergeCommitTimeUniqueConflict = stderrors.New("merge commit-time unique conflict")
)

Functions

func IsMergeCommitTimeUniqueConflict added in v1.1.0

func IsMergeCommitTimeUniqueConflict(err error) bool

IsMergeCommitTimeUniqueConflict reports whether err was explicitly tagged as a retry-safe commit-time UNIQUE violation from a MERGE race.

func MapTransientTransactionError

func MapTransientTransactionError(err error) (string, bool)

MapTransientTransactionError maps known transaction failure sentinels to Neo4j-compatible transient transaction codes. It intentionally classifies by error reference rather than message text so localized or templated messages do not change retry semantics.

func MarkMergeCommitTimeUniqueConflict added in v1.1.0

func MarkMergeCommitTimeUniqueConflict(err error) error

MarkMergeCommitTimeUniqueConflict wraps a UNIQUE constraint violation with a dedicated sentinel when the caller knows it came from a retry-safe MERGE commit race. Non-UNIQUE failures are returned unchanged.

Types

This section is empty.

Jump to

Keyboard shortcuts

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