Skip to main content

internal/infra/pg/entitynames.go

internal/infra/pg · 135 lines · 5 declarations · source

Declarations​

const MaxEntityNameVariants​

const MaxEntityNameVariants = 64

source

var ErrEntityNameLimit​

var ErrEntityNameLimit = errors.New("entity name variants exceed the supported bound")

source

func retainEntityNameTx​

func retainEntityNameTx(ctx context.Context, tx pgx.Tx, schema Schema, scope, source, entity, name, normalized string) error

The source and entity are already locked by resolution. Independent sources keep independent receipts even when their spelling is identical; deleting one cannot remove the other's support.

source

func refreshEntityNamesTx​

func refreshEntityNamesTx(ctx context.Context, tx pgx.Tx, schema Schema, scope, entity string) (bool, error)

Arrays are a bounded display/search cache. Source-owned receipts survive entity loss and provide deterministic reconstruction. A missing entity requires no cache; its original fact can recover it.

source

func removeEntityNamesTx​

func removeEntityNamesTx(ctx context.Context, tx pgx.Tx, schema Schema, scope, subject string, sources []string) (int, error)

Source locks precede entity locks in formation, recovery and removal. Sorting shared endpoints gives overlapping deletion batches the same cache-lock order.

source