Documentation
¶
Overview ¶
Package tuples provides tuple-table specific builders and helpers.
Index ¶
- type TupleQuery
- func (q *TupleQuery) Alias() string
- func (q *TupleQuery) Build() sqldsl.SelectStmt
- func (q *TupleQuery) Distinct() *TupleQuery
- func (q *TupleQuery) ExistsSQL() string
- func (q *TupleQuery) InnerJoin(table, alias string, on ...sqldsl.Expr) *TupleQuery
- func (q *TupleQuery) JoinRaw(joinType, tableExpr string, on ...sqldsl.Expr) *TupleQuery
- func (q *TupleQuery) JoinTuples(alias string, on ...sqldsl.Expr) *TupleQuery
- func (q *TupleQuery) LeftJoin(table, alias string, on ...sqldsl.Expr) *TupleQuery
- func (q *TupleQuery) Limit(n int) *TupleQuery
- func (q *TupleQuery) NotExistsSQL() string
- func (q *TupleQuery) ObjectType(t string) *TupleQuery
- func (q *TupleQuery) Relations(rels ...string) *TupleQuery
- func (q *TupleQuery) SQL() string
- func (q *TupleQuery) Select(cols ...string) *TupleQuery
- func (q *TupleQuery) SelectCol(columns ...string) *TupleQuery
- func (q *TupleQuery) SelectExpr(exprs ...sqldsl.Expr) *TupleQuery
- func (q *TupleQuery) Where(exprs ...sqldsl.Expr) *TupleQuery
- func (q *TupleQuery) WhereHasUserset() *TupleQuery
- func (q *TupleQuery) WhereNoUserset() *TupleQuery
- func (q *TupleQuery) WhereObject(ref sqldsl.ObjectRef) *TupleQuery
- func (q *TupleQuery) WhereObjectID(id sqldsl.Expr) *TupleQuery
- func (q *TupleQuery) WhereSubject(ref sqldsl.SubjectRef) *TupleQuery
- func (q *TupleQuery) WhereSubjectID(id sqldsl.Expr, allowWildcard bool) *TupleQuery
- func (q *TupleQuery) WhereSubjectType(t sqldsl.Expr) *TupleQuery
- func (q *TupleQuery) WhereSubjectTypeIn(types ...string) *TupleQuery
- func (q *TupleQuery) WhereUsersetRelation(rel string) *TupleQuery
- func (q *TupleQuery) WhereUsersetRelationLike(rel string) *TupleQuery
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) 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'.