River

riverprodatabasesql

package module
v0.29.0 Latest
Published: Aug 29, 2026 License: Proprietary

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Driver

type Driver struct {
	riverdatabasesql.Driver
	// contains filtered or unexported fields
}

Driver is an implementation of riverdriver.Driver for database/sql.

func New

func New(dbPool *sql.DB) *Driver

New returns a new database/sql River Pro driver for use with River.

func NewWithPgxListener

func NewWithPgxListener(dbPool *sql.DB, listenerPool *pgxpool.Pool) *Driver

NewWithPgxListener returns a new database/sql River Pro driver with a Pgx-backed listener. The database/sql pool continues to be used for all database operations other than listening for notifications. The Pgx pool is used only to acquire dedicated connections for Postgres LISTEN commands. It panics if listenerPool is nil; use New for a poll-only driver.

Both pools are owned by the caller, must connect to the same database, and must resolve the same schema. When the River client has no explicit schema, both pools' search paths must produce the same current schema. Neither pool may be closed while associated River objects are running.

Listener connections are hijacked from listenerPool and never returned. A pool dedicated to one River client can generally set MinConns to zero and MaxConns to one. Each concurrently running client still needs its own listener connection. Because hijacked connections no longer count against the pool's maximum, sharing a listener pool between clients may cause total live connections to exceed that maximum. Closing listenerPool does not close hijacked connections; stopping the associated River clients does.

Applications using PgBouncer must configure the listener pool to use session pooling or connect it directly to Postgres.

func (*Driver) GetExecutor

func (d *Driver) GetExecutor() riverdriver.Executor

func (*Driver) GetMigrationDefaultLines

func (d *Driver) GetMigrationDefaultLines() []string

func (*Driver) GetMigrationFS

func (d *Driver) GetMigrationFS(line string) fs.FS

func (*Driver) GetMigrationLines

func (d *Driver) GetMigrationLines() []string

func (*Driver) GetMigrationTruncateTables

func (d *Driver) GetMigrationTruncateTables(line string, version int) []string

func (*Driver) GetProExecutor

func (d *Driver) GetProExecutor() driver.ProExecutor

func (*Driver) HasPool

func (d *Driver) HasPool() bool

func (*Driver) PluginInit

func (d *Driver) PluginInit(archetype *baseservice.Archetype)

PluginInit initializes a plugin with an archetype It's invoked on Client.NewClient.

func (*Driver) PluginPilot

func (d *Driver) PluginPilot() riverpilot.Pilot

func (*Driver) ProConfigInit

func (d *Driver) ProConfigInit(pilot riverpilot.Pilot)

func (*Driver) UnwrapExecutor

func (d *Driver) UnwrapExecutor(tx *sql.Tx) riverdriver.ExecutorTx

func (*Driver) UnwrapProExecutor

func (d *Driver) UnwrapProExecutor(tx *sql.Tx) driver.ProExecutorTx

func (*Driver) UnwrapTx

func (d *Driver) UnwrapTx(execTx riverdriver.ExecutorTx) *sql.Tx

type Executor

type Executor struct {
	*riverdatabasesql.Executor
	// contains filtered or unexported fields
}

func (*Executor) Begin

func (*Executor) BeginPro

func (e *Executor) BeginPro(ctx context.Context) (driver.ProExecutorTx, error)

func (*Executor) JobDeadLetterDeleteByID

func (e *Executor) JobDeadLetterDeleteByID(ctx context.Context, params *driver.JobDeadLetterDeleteByIDParams) (*rivertype.JobRow, error)

func (*Executor) JobDeadLetterGetAll

func (e *Executor) JobDeadLetterGetAll(ctx context.Context, params *driver.JobDeadLetterGetAllParams) ([]*rivertype.JobRow, error)

func (*Executor) JobDeadLetterGetByID

func (e *Executor) JobDeadLetterGetByID(ctx context.Context, params *driver.JobDeadLetterGetByIDParams) (*rivertype.JobRow, error)

func (*Executor) JobDeadLetterMoveByID

func (e *Executor) JobDeadLetterMoveByID(ctx context.Context, params *driver.JobDeadLetterMoveByIDParams) (*rivertype.JobRow, error)

func (*Executor) JobDeadLetterMoveDiscarded

func (e *Executor) JobDeadLetterMoveDiscarded(ctx context.Context, params *driver.JobDeadLetterMoveDiscardedParams) ([]*rivertype.JobRow, error)

func (*Executor) JobDeleteByIDMany

func (e *Executor) JobDeleteByIDMany(ctx context.Context, params *driver.JobDeleteByIDManyParams) ([]*rivertype.JobRow, error)

func (*Executor) JobDeleteNonWorkflowBefore

func (e *Executor) JobDeleteNonWorkflowBefore(ctx context.Context, params *driver.JobDeleteNonWorkflowBeforeParams) (int, error)

func (*Executor) JobGetAvailableForBatch

func (e *Executor) JobGetAvailableForBatch(ctx context.Context, params *driver.JobGetAvailableForBatchParams) ([]*rivertype.JobRow, error)

func (*Executor) JobGetAvailableLimited

func (e *Executor) JobGetAvailableLimited(ctx context.Context, params *driver.JobGetAvailableLimitedParams) ([]*rivertype.JobRow, error)

func (*Executor) JobGetAvailablePartitionKeys

func (e *Executor) JobGetAvailablePartitionKeys(ctx context.Context, params *driver.JobGetAvailablePartitionKeysParams) ([]string, error)

func (*Executor) JobGetStuckIfNoActiveProducer

func (e *Executor) JobGetStuckIfNoActiveProducer(ctx context.Context, params *driver.JobGetStuckIfNoActiveProducerParams) ([]*rivertype.JobRow, error)

func (*Executor) JobInsertFastMany

func (*Executor) JobInsertFastManyNoReturning

func (e *Executor) JobInsertFastManyNoReturning(ctx context.Context, params *riverdriver.JobInsertFastManyParams) (int, error)

func (*Executor) JobRescueManyIfNoActiveProducer

func (e *Executor) JobRescueManyIfNoActiveProducer(ctx context.Context, params *driver.JobRescueManyIfNoActiveProducerParams) (*struct{}, error)

func (*Executor) PGTryAdvisoryXactLock

func (e *Executor) PGTryAdvisoryXactLock(ctx context.Context, key int64) (bool, error)

func (*Executor) PeriodicJobGetAll

func (e *Executor) PeriodicJobGetAll(ctx context.Context, params *driver.PeriodicJobGetAllParams) ([]*driver.PeriodicJob, error)

func (*Executor) PeriodicJobGetByID

func (e *Executor) PeriodicJobGetByID(ctx context.Context, params *driver.PeriodicJobGetByIDParams) (*driver.PeriodicJob, error)

func (*Executor) PeriodicJobInsert

func (e *Executor) PeriodicJobInsert(ctx context.Context, params *driver.PeriodicJobInsertParams) (*driver.PeriodicJob, error)

func (*Executor) PeriodicJobKeepAliveAndReap

func (e *Executor) PeriodicJobKeepAliveAndReap(ctx context.Context, params *driver.PeriodicJobKeepAliveAndReapParams) ([]*driver.PeriodicJob, error)

func (*Executor) PeriodicJobUpsertMany

func (e *Executor) PeriodicJobUpsertMany(ctx context.Context, params *driver.PeriodicJobUpsertManyParams) ([]*driver.PeriodicJob, error)

func (*Executor) ProducerDelete

func (e *Executor) ProducerDelete(ctx context.Context, params *driver.ProducerDeleteParams) error

func (*Executor) ProducerGetByID

func (e *Executor) ProducerGetByID(ctx context.Context, params *driver.ProducerGetByIDParams) (*driver.Producer, error)

func (*Executor) ProducerInsertOrUpdate

func (e *Executor) ProducerInsertOrUpdate(ctx context.Context, params *driver.ProducerInsertOrUpdateParams) (*driver.Producer, error)

func (*Executor) ProducerKeepAlive

func (e *Executor) ProducerKeepAlive(ctx context.Context, params *driver.ProducerKeepAliveParams) (*driver.Producer, error)

func (*Executor) ProducerListByQueue

func (*Executor) ProducerUpdate

func (e *Executor) ProducerUpdate(ctx context.Context, params *driver.ProducerUpdateParams) (*driver.Producer, error)

func (*Executor) QueueGetMetadataForInsert

func (*Executor) SequenceAppendMany

func (e *Executor) SequenceAppendMany(ctx context.Context, params *driver.SequenceAppendManyParams) (int, error)

func (*Executor) SequenceList

func (e *Executor) SequenceList(ctx context.Context, params *driver.SequenceListParams) ([]*driver.Sequence, error)

func (*Executor) SequencePromote

func (*Executor) SequencePromoteFromTable

func (*Executor) SequenceScanAndPromoteStalled

func (*Executor) SetLocalStatementTimeout

func (e *Executor) SetLocalStatementTimeout(ctx context.Context, timeout time.Duration) error

func (*Executor) SupportsLocalStatementTimeout

func (e *Executor) SupportsLocalStatementTimeout() bool

func (*Executor) TimeNow

func (e *Executor) TimeNow(ctx context.Context, params *driver.TimeNowParams) (time.Time, error)

func (*Executor) WorkflowAttemptInsert

func (e *Executor) WorkflowAttemptInsert(ctx context.Context, params *driver.WorkflowAttemptInsertParams) (*driver.WorkflowAttempt, error)

func (*Executor) WorkflowAttemptListByWorkflowID

func (e *Executor) WorkflowAttemptListByWorkflowID(ctx context.Context, params *driver.WorkflowAttemptListByWorkflowIDParams) ([]*driver.WorkflowAttempt, error)

func (*Executor) WorkflowAttemptTaskInsert

func (e *Executor) WorkflowAttemptTaskInsert(ctx context.Context, params *driver.WorkflowAttemptTaskInsertParams) (*driver.WorkflowAttemptTask, error)

func (*Executor) WorkflowAttemptTaskListByWorkflowID

func (e *Executor) WorkflowAttemptTaskListByWorkflowID(ctx context.Context, params *driver.WorkflowAttemptTaskListByWorkflowIDParams) ([]*driver.WorkflowAttemptTask, error)

func (*Executor) WorkflowCancel

func (e *Executor) WorkflowCancel(ctx context.Context, params *driver.WorkflowCancelParams) ([]*rivertype.JobRow, error)

func (*Executor) WorkflowCancelWithDeletedDepsMany

func (e *Executor) WorkflowCancelWithDeletedDepsMany(ctx context.Context, params *driver.WorkflowCancelWithDeletedDepsManyParams) (int64, error)

func (*Executor) WorkflowCancelWithFailedDepsMany

func (e *Executor) WorkflowCancelWithFailedDepsMany(ctx context.Context, params *driver.WorkflowCancelWithFailedDepsManyParams) (int64, error)

func (*Executor) WorkflowCleanupDeleteAttemptTasksByWorkflowIDs

func (e *Executor) WorkflowCleanupDeleteAttemptTasksByWorkflowIDs(ctx context.Context, params *driver.WorkflowCleanupDeleteByWorkflowIDsParams) error

func (*Executor) WorkflowCleanupDeleteAttemptsByWorkflowIDs

func (e *Executor) WorkflowCleanupDeleteAttemptsByWorkflowIDs(ctx context.Context, params *driver.WorkflowCleanupDeleteByWorkflowIDsParams) error

func (*Executor) WorkflowCleanupDeleteDeadLetterJobsByWorkflowIDs

func (e *Executor) WorkflowCleanupDeleteDeadLetterJobsByWorkflowIDs(ctx context.Context, params *driver.WorkflowCleanupDeleteByWorkflowIDsParams) error

func (*Executor) WorkflowCleanupDeleteJobsByWorkflowIDs

func (e *Executor) WorkflowCleanupDeleteJobsByWorkflowIDs(ctx context.Context, params *driver.WorkflowCleanupDeleteByWorkflowIDsParams) error

func (*Executor) WorkflowCleanupDeleteSignalsByWorkflowIDs

func (e *Executor) WorkflowCleanupDeleteSignalsByWorkflowIDs(ctx context.Context, params *driver.WorkflowCleanupDeleteByWorkflowIDsParams) error

func (*Executor) WorkflowCleanupDeleteTimersByWorkflowIDs

func (e *Executor) WorkflowCleanupDeleteTimersByWorkflowIDs(ctx context.Context, params *driver.WorkflowCleanupDeleteByWorkflowIDsParams) error

func (*Executor) WorkflowCleanupDeleteWorkflowsByWorkflowIDs

func (e *Executor) WorkflowCleanupDeleteWorkflowsByWorkflowIDs(ctx context.Context, params *driver.WorkflowCleanupDeleteWorkflowsByWorkflowIDsParams) error

func (*Executor) WorkflowCleanupDeleteWorklistByWorkflowIDs

func (e *Executor) WorkflowCleanupDeleteWorklistByWorkflowIDs(ctx context.Context, params *driver.WorkflowCleanupDeleteByWorkflowIDsParams) error

func (*Executor) WorkflowCleanupListFinalizedIDs

func (e *Executor) WorkflowCleanupListFinalizedIDs(ctx context.Context, params *driver.WorkflowCleanupListFinalizedIDsParams) ([]string, error)

func (*Executor) WorkflowCleanupListFinalizedIDsWithoutJobs

func (e *Executor) WorkflowCleanupListFinalizedIDsWithoutJobs(ctx context.Context, params *driver.WorkflowCleanupListFinalizedIDsWithoutJobsParams) ([]string, error)

func (*Executor) WorkflowCountIncompleteJobs

func (e *Executor) WorkflowCountIncompleteJobs(ctx context.Context, params *driver.WorkflowCountIncompleteJobsParams) (int64, error)

func (*Executor) WorkflowFinalizeIfCompleteMany

func (e *Executor) WorkflowFinalizeIfCompleteMany(ctx context.Context, params *driver.WorkflowFinalizeIfCompleteManyParams) ([]string, error)

func (*Executor) WorkflowGetByID

func (e *Executor) WorkflowGetByID(ctx context.Context, params *driver.WorkflowGetByIDParams) (*driver.Workflow, error)

func (*Executor) WorkflowGetFinalizationCandidates

func (e *Executor) WorkflowGetFinalizationCandidates(ctx context.Context, params *driver.WorkflowGetFinalizationCandidatesParams) ([]string, error)

func (*Executor) WorkflowGetLegacyBackfillIDs

func (e *Executor) WorkflowGetLegacyBackfillIDs(ctx context.Context, params *driver.WorkflowGetLegacyBackfillIDsParams) ([]string, error)

func (*Executor) WorkflowHasWaitTasksMany

func (e *Executor) WorkflowHasWaitTasksMany(ctx context.Context, params *driver.WorkflowHasWaitTasksManyParams) ([]string, error)

func (*Executor) WorkflowInitFromJobs

func (e *Executor) WorkflowInitFromJobs(ctx context.Context, params *driver.WorkflowInitFromJobsParams) ([]string, error)

func (*Executor) WorkflowInsertMany

func (e *Executor) WorkflowInsertMany(ctx context.Context, params *driver.WorkflowInsertManyParams) error

func (*Executor) WorkflowJobGetByTaskName

func (e *Executor) WorkflowJobGetByTaskName(ctx context.Context, params *driver.WorkflowJobGetByTaskNameParams) (*rivertype.JobRow, error)

func (*Executor) WorkflowJobList

func (e *Executor) WorkflowJobList(ctx context.Context, params *driver.WorkflowJobListParams) ([]*driver.WorkflowTaskWithJob, error)

func (*Executor) WorkflowListActive

func (e *Executor) WorkflowListActive(ctx context.Context, params *driver.WorkflowListParams) ([]*driver.WorkflowListItem, error)

func (*Executor) WorkflowListAll

func (e *Executor) WorkflowListAll(ctx context.Context, params *driver.WorkflowListParams) ([]*driver.WorkflowListItem, error)

func (*Executor) WorkflowListByIDs

func (e *Executor) WorkflowListByIDs(ctx context.Context, params *driver.WorkflowListByIDsParams) ([]string, error)

func (*Executor) WorkflowListByIDsForWaitEval

func (e *Executor) WorkflowListByIDsForWaitEval(ctx context.Context, params *driver.WorkflowListByIDsForWaitEvalParams) ([]*driver.WorkflowWaitWorkflow, error)

func (*Executor) WorkflowListInactive

func (e *Executor) WorkflowListInactive(ctx context.Context, params *driver.WorkflowListParams) ([]*driver.WorkflowListItem, error)

func (*Executor) WorkflowLoadDepTasksAndIDs

func (e *Executor) WorkflowLoadDepTasksAndIDs(ctx context.Context, params *driver.WorkflowLoadDepTasksAndIDsParams) (map[string]*int64, error)

func (*Executor) WorkflowLoadJobsWithDeps

func (e *Executor) WorkflowLoadJobsWithDeps(ctx context.Context, params *driver.WorkflowLoadJobsWithDepsParams) ([]*driver.WorkflowTaskWithJob, error)

func (*Executor) WorkflowLoadTaskNamesByWorkflowID

func (e *Executor) WorkflowLoadTaskNamesByWorkflowID(ctx context.Context, params *driver.WorkflowLoadTaskNamesByWorkflowIDParams) ([]string, error)

func (*Executor) WorkflowLoadTaskWithDeps

func (e *Executor) WorkflowLoadTaskWithDeps(ctx context.Context, params *driver.WorkflowLoadTaskWithDepsParams) (*driver.WorkflowTaskWithJob, error)

func (*Executor) WorkflowLoadTasksByNames

func (e *Executor) WorkflowLoadTasksByNames(ctx context.Context, params *driver.WorkflowLoadTasksByNamesParams) ([]*driver.WorkflowTask, error)

func (*Executor) WorkflowLockByIDsSkipLocked

func (e *Executor) WorkflowLockByIDsSkipLocked(ctx context.Context, params *driver.WorkflowLockByIDsSkipLockedParams) ([]string, error)

func (*Executor) WorkflowReadyTaskIDsByWorkflowIDs

func (*Executor) WorkflowRetry

func (e *Executor) WorkflowRetry(ctx context.Context, params *driver.WorkflowRetryParams) ([]*rivertype.JobRow, error)

func (*Executor) WorkflowRetryLockAndCheckRunning

func (*Executor) WorkflowSignalInsert

func (*Executor) WorkflowSignalList

func (e *Executor) WorkflowSignalList(ctx context.Context, params *driver.WorkflowSignalListParams) ([]*driver.WorkflowSignal, error)

func (*Executor) WorkflowSignalListByEvidence

func (e *Executor) WorkflowSignalListByEvidence(ctx context.Context, params *driver.WorkflowSignalListByEvidenceParams) ([]*driver.WorkflowSignal, error)

func (*Executor) WorkflowSignalListByKeys

func (e *Executor) WorkflowSignalListByKeys(ctx context.Context, params *driver.WorkflowSignalListByKeysParams) ([]*driver.WorkflowSignal, error)

func (*Executor) WorkflowSignalListByWorkflowIDs

func (e *Executor) WorkflowSignalListByWorkflowIDs(ctx context.Context, params *driver.WorkflowSignalListByWorkflowIDsParams) ([]*driver.WorkflowSignal, error)

func (*Executor) WorkflowSignalStatsByWorkflowIDs

func (e *Executor) WorkflowSignalStatsByWorkflowIDs(ctx context.Context, params *driver.WorkflowSignalStatsByWorkflowIDsParams) ([]*driver.WorkflowSignalStat, error)

func (*Executor) WorkflowStageJobsByIDMany

func (e *Executor) WorkflowStageJobsByIDMany(ctx context.Context, params *driver.WorkflowStageJobsByIDManyParams) ([]*rivertype.JobRow, error)

func (*Executor) WorkflowTimerConsumeDue

func (e *Executor) WorkflowTimerConsumeDue(ctx context.Context, params *driver.WorkflowTimerConsumeDueParams) ([]*driver.WorkflowTimer, error)

func (*Executor) WorkflowTimerDeleteByWorkflowIDs

func (e *Executor) WorkflowTimerDeleteByWorkflowIDs(ctx context.Context, params *driver.WorkflowTimerDeleteByWorkflowIDsParams) error

func (*Executor) WorkflowTimerGetByWorkflowID

func (e *Executor) WorkflowTimerGetByWorkflowID(ctx context.Context, params *driver.WorkflowTimerGetByWorkflowIDParams) (*driver.WorkflowTimer, error)

func (*Executor) WorkflowTimerNextFireAtByWorkflowIDs

func (*Executor) WorkflowTimerUpsertMany

func (e *Executor) WorkflowTimerUpsertMany(ctx context.Context, params *driver.WorkflowTimerUpsertManyParams) error

func (*Executor) WorkflowUnfinalizeIfActiveJobsMany

func (e *Executor) WorkflowUnfinalizeIfActiveJobsMany(ctx context.Context, params *driver.WorkflowUnfinalizeIfActiveJobsManyParams) ([]string, error)

func (*Executor) WorkflowWaitActivatableTaskIDsByWorkflowIDs

func (*Executor) WorkflowWaitActivateByJobIDMany

func (e *Executor) WorkflowWaitActivateByJobIDMany(ctx context.Context, params *driver.WorkflowWaitActivateByJobIDManyParams) ([]int64, error)

func (*Executor) WorkflowWaitActiveTaskListByWorkflowIDs

func (e *Executor) WorkflowWaitActiveTaskListByWorkflowIDs(ctx context.Context, params *driver.WorkflowWaitActiveTaskListByWorkflowIDsParams) ([]*driver.WorkflowWaitActiveTask, error)

func (*Executor) WorkflowWaitDepOutputListByWorkflowTaskPairs

func (e *Executor) WorkflowWaitDepOutputListByWorkflowTaskPairs(ctx context.Context, params *driver.WorkflowWaitDepOutputListByWorkflowTaskPairsParams) ([]*driver.WorkflowWaitDepOutput, error)

func (*Executor) WorkflowWaitEvalCursorUpdateByWorkflowIDMany

func (e *Executor) WorkflowWaitEvalCursorUpdateByWorkflowIDMany(ctx context.Context, params *driver.WorkflowWaitEvalCursorUpdateByWorkflowIDManyParams) error

func (*Executor) WorkflowWaitUpdateMetadataByJobIDMany

func (e *Executor) WorkflowWaitUpdateMetadataByJobIDMany(ctx context.Context, params *driver.WorkflowWaitUpdateMetadataByJobIDManyParams) error

func (*Executor) WorkflowWorklistDeleteByWorkflowIDsReturningReasons

func (*Executor) WorkflowWorklistInsertMany

func (e *Executor) WorkflowWorklistInsertMany(ctx context.Context, params *driver.WorkflowWorklistInsertManyParams) error

func (*Executor) WorkflowWorklistList

func (e *Executor) WorkflowWorklistList(ctx context.Context, params *driver.WorkflowWorklistListParams) ([]*driver.WorkflowWorklistItem, error)

func (*Executor) WorkflowWorklistListIDs

func (e *Executor) WorkflowWorklistListIDs(ctx context.Context, params *driver.WorkflowWorklistListParams) ([]*driver.WorkflowWorklistIDItem, error)

type ExecutorSubTx

type ExecutorSubTx struct {
	Executor
	// contains filtered or unexported fields
}

func (*ExecutorSubTx) Begin

func (*ExecutorSubTx) BeginPro

func (t *ExecutorSubTx) BeginPro(ctx context.Context) (driver.ProExecutorTx, error)

func (*ExecutorSubTx) Commit

func (t *ExecutorSubTx) Commit(ctx context.Context) error

func (*ExecutorSubTx) Rollback

func (t *ExecutorSubTx) Rollback(ctx context.Context) error

type ExecutorTx

type ExecutorTx struct {
	Executor
	// contains filtered or unexported fields
}

func (*ExecutorTx) Begin

func (*ExecutorTx) BeginPro

func (t *ExecutorTx) BeginPro(ctx context.Context) (driver.ProExecutorTx, error)

func (*ExecutorTx) Commit

func (t *ExecutorTx) Commit(ctx context.Context) error

func (*ExecutorTx) Rollback

func (t *ExecutorTx) Rollback(ctx context.Context) error