tuples

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package tuples provides tuple-table specific builders and helpers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type TupleQuery

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

TupleQuery is a fluent builder for queries against melange_tuples.

func Tuples

func Tuples(alias string) *TupleQuery

Tuples creates a new TupleQuery with the given table alias.

func (*TupleQuery) Alias

func (q *TupleQuery) Alias() string

Alias returns the query's table alias.

func (*TupleQuery) Build

func (q *TupleQuery) Build() sqldsl.SelectStmt

Build returns the declarative SelectStmt for inspection or testing.

func (*TupleQuery) Distinct

func (q *TupleQuery) Distinct() *TupleQuery

Distinct enables DISTINCT in the SELECT.

func (*TupleQuery) ExistsSQL

func (q *TupleQuery) ExistsSQL() string

ExistsSQL returns the query wrapped in EXISTS(...).

func (*TupleQuery) InnerJoin

func (q *TupleQuery) InnerJoin(table, alias string, on ...sqldsl.Expr) *TupleQuery

InnerJoin adds an INNER JOIN clause.

func (*TupleQuery) JoinRaw

func (q *TupleQuery) JoinRaw(joinType, tableExpr string, on ...sqldsl.Expr) *TupleQuery

JoinRaw adds a JOIN with a raw table expression.

func (*TupleQuery) JoinTuples

func (q *TupleQuery) JoinTuples(alias string, on ...sqldsl.Expr) *TupleQuery

JoinTuples adds an INNER JOIN to melange_tuples with the given alias.

func (*TupleQuery) LeftJoin

func (q *TupleQuery) LeftJoin(table, alias string, on ...sqldsl.Expr) *TupleQuery

LeftJoin adds a LEFT JOIN clause.

func (*TupleQuery) Limit

func (q *TupleQuery) Limit(n int) *TupleQuery

Limit sets the LIMIT clause.

func (*TupleQuery) NotExistsSQL

func (q *TupleQuery) NotExistsSQL() string

NotExistsSQL returns the query wrapped in NOT EXISTS(...).

func (*TupleQuery) ObjectType

func (q *TupleQuery) ObjectType(t string) *TupleQuery

ObjectType sets the object_type filter.

func (*TupleQuery) Relations

func (q *TupleQuery) Relations(rels ...string) *TupleQuery

Relations sets the relation filter (IN clause).

func (*TupleQuery) SQL

func (q *TupleQuery) SQL() string

SQL renders the query to a SQL string.

func (*TupleQuery) Select

func (q *TupleQuery) Select(cols ...string) *TupleQuery

Select sets the columns to select.

func (*TupleQuery) SelectCol

func (q *TupleQuery) SelectCol(columns ...string) *TupleQuery

SelectCol adds a column with automatic table prefix.

func (*TupleQuery) SelectExpr

func (q *TupleQuery) SelectExpr(exprs ...sqldsl.Expr) *TupleQuery

SelectExpr adds typed expressions as columns.

func (*TupleQuery) Where

func (q *TupleQuery) Where(exprs ...sqldsl.Expr) *TupleQuery

Where adds arbitrary WHERE conditions.

func (*TupleQuery) WhereHasUserset

func (q *TupleQuery) WhereHasUserset() *TupleQuery

WhereHasUserset adds a condition requiring subject_id to contain '#'.

func (*TupleQuery) WhereNoUserset

func (q *TupleQuery) WhereNoUserset() *TupleQuery

WhereNoUserset adds a condition requiring subject_id to NOT contain '#'.

func (*TupleQuery) WhereObject

func (q *TupleQuery) WhereObject(ref sqldsl.ObjectRef) *TupleQuery

WhereObject adds conditions for matching object type and ID.

func (*TupleQuery) WhereObjectID

func (q *TupleQuery) WhereObjectID(id sqldsl.Expr) *TupleQuery

WhereObjectID adds a condition for object_id equals.

func (*TupleQuery) WhereSubject

func (q *TupleQuery) WhereSubject(ref sqldsl.SubjectRef) *TupleQuery

WhereSubject adds conditions for matching subject type and ID.

func (*TupleQuery) WhereSubjectID

func (q *TupleQuery) WhereSubjectID(id sqldsl.Expr, allowWildcard bool) *TupleQuery

WhereSubjectID adds a condition for subject_id matching. If allowWildcard is true, also matches "*".

func (*TupleQuery) WhereSubjectType

func (q *TupleQuery) WhereSubjectType(t sqldsl.Expr) *TupleQuery

WhereSubjectType adds a condition for subject_type equals.

func (*TupleQuery) WhereSubjectTypeIn

func (q *TupleQuery) WhereSubjectTypeIn(types ...string) *TupleQuery

WhereSubjectTypeIn adds a condition for subject_type IN.

func (*TupleQuery) WhereUsersetRelation

func (q *TupleQuery) WhereUsersetRelation(rel string) *TupleQuery

WhereUsersetRelation adds a condition for the userset relation part.

func (*TupleQuery) WhereUsersetRelationLike

func (q *TupleQuery) WhereUsersetRelationLike(rel string) *TupleQuery

WhereUsersetRelationLike adds an optimized LIKE condition for userset relation matching. This replaces the combination of WhereHasUserset() + WhereUsersetRelation() with a single LIKE pattern match: subject_id LIKE '%#relation' instead of position('#' in subject_id) > 0 AND split_part(subject_id, '#', 2) = 'relation'.

Jump to

Keyboard shortcuts

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