sql

package
v0.13.0-alpha.0 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2024 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	//go:embed migrations/sql/*.sql
	Migrations embed.FS
)

Functions

This section is empty.

Types

type Persister

type Persister struct {
	// contains filtered or unexported fields
}

func NewPersister

func NewPersister(ctx context.Context, reg dependencies, nid uuid.UUID) (*Persister, error)

func (*Persister) Connection

func (p *Persister) Connection(ctx context.Context) *pop.Connection

func (*Persister) DeleteAllRelationTuples

func (p *Persister) DeleteAllRelationTuples(ctx context.Context, query *relationtuple.RelationQuery) (err error)

func (*Persister) DeleteRelationTuples

func (p *Persister) DeleteRelationTuples(ctx context.Context, rs ...*relationtuple.RelationTuple) (err error)

func (*Persister) ExistsRelationTuples

func (p *Persister) ExistsRelationTuples(ctx context.Context, query *relationtuple.RelationQuery) (_ bool, err error)

func (*Persister) GetRelationTuples

func (p *Persister) GetRelationTuples(ctx context.Context, query *relationtuple.RelationQuery, options ...x.PaginationOptionSetter) (_ []*relationtuple.RelationTuple, nextPageToken string, err error)

func (*Persister) InsertRelationTuple

func (p *Persister) InsertRelationTuple(ctx context.Context, rel *relationtuple.RelationTuple) (err error)

func (*Persister) MapStringsToUUIDs

func (p *Persister) MapStringsToUUIDs(ctx context.Context, s ...string) (_ []uuid.UUID, err error)

func (*Persister) MapStringsToUUIDsReadOnly

func (p *Persister) MapStringsToUUIDsReadOnly(ctx context.Context, s ...string) (_ []uuid.UUID, err error)

func (*Persister) MapUUIDsToStrings

func (p *Persister) MapUUIDsToStrings(ctx context.Context, u ...uuid.UUID) (_ []string, err error)

func (*Persister) NetworkID

func (p *Persister) NetworkID(ctx context.Context) uuid.UUID

func (*Persister) TransactRelationTuples

func (p *Persister) TransactRelationTuples(ctx context.Context, ins []*relationtuple.RelationTuple, del []*relationtuple.RelationTuple) (err error)

func (*Persister) Transaction

func (p *Persister) Transaction(ctx context.Context, f func(ctx context.Context) error) error

func (*Persister) WriteRelationTuples

func (p *Persister) WriteRelationTuples(ctx context.Context, rs ...*relationtuple.RelationTuple) (err error)

type RelationTuple

type RelationTuple struct {
	// An ID field is required to make pop happy. The actual ID is a composite primary key.
	ID                  uuid.UUID      `db:"shard_id"`
	NetworkID           uuid.UUID      `db:"nid"`
	Namespace           string         `db:"namespace"`
	Object              uuid.UUID      `db:"object"`
	Relation            string         `db:"relation"`
	SubjectID           uuid.NullUUID  `db:"subject_id"`
	SubjectSetNamespace sql.NullString `db:"subject_set_namespace"`
	SubjectSetObject    uuid.NullUUID  `db:"subject_set_object"`
	SubjectSetRelation  sql.NullString `db:"subject_set_relation"`
	CommitTime          time.Time      `db:"commit_time"`
}

func (*RelationTuple) FromInternal

func (r *RelationTuple) FromInternal(ctx context.Context, p *Persister, rt *relationtuple.RelationTuple) (err error)

func (*RelationTuple) TableName

func (*RelationTuple) TableName() string

func (*RelationTuple) ToInternal

func (r *RelationTuple) ToInternal() (*relationtuple.RelationTuple, error)

type Traverser

type Traverser struct {
	// contains filtered or unexported fields
}

func NewTraverser

func NewTraverser(p *Persister) *Traverser

func (*Traverser) TraverseSubjectSetExpansion

func (t *Traverser) TraverseSubjectSetExpansion(ctx context.Context, start *relationtuple.RelationTuple) (res []*relationtuple.TraversalResult, err error)

TraverseSubjectSetExpansion gets all subject sets for the object#relation. It also checks whether the requested subject is a member of each of the returned subject sets.

func (*Traverser) TraverseSubjectSetRewrite

func (t *Traverser) TraverseSubjectSetRewrite(ctx context.Context, start *relationtuple.RelationTuple, computedSubjectSets []string) (res []*relationtuple.TraversalResult, err error)

type UUIDMapping

type UUIDMapping struct {
	ID                   uuid.UUID `db:"id"`
	StringRepresentation string    `db:"string_representation"`
}

func (UUIDMapping) TableName

func (UUIDMapping) TableName() string

type UUIDMappings

type UUIDMappings []*UUIDMapping

func (UUIDMappings) TableName

func (UUIDMappings) TableName() string

Directories

Path Synopsis
migrations

Jump to

Keyboard shortcuts

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