Skip to content

QueryIR

Defined in: packages/db/src/query/ir.ts:16

Properties

distinct?

ts
optional distinct?: true;

Defined in: packages/db/src/query/ir.ts:28


fnHaving?

ts
optional fnHaving?: ((row) => any)[];

Defined in: packages/db/src/query/ir.ts:34

Parameters

row

NamespacedRow

Returns

any


fnSelect?

ts
optional fnSelect?: (row) => any;

Defined in: packages/db/src/query/ir.ts:32

Parameters

row

NamespacedRow

Returns

any


fnWhere?

ts
optional fnWhere?: ((row) => any)[];

Defined in: packages/db/src/query/ir.ts:33

Parameters

row

NamespacedRow

Returns

any


from

ts
from: From;

Defined in: packages/db/src/query/ir.ts:17


groupBy?

ts
optional groupBy?: GroupBy;

Defined in: packages/db/src/query/ir.ts:21


grouping?

ts
optional grouping?: object;

Defined in: packages/db/src/query/ir.ts:23

processGroupBy

ts
processGroupBy: (pipeline, groupByClause, valueIdentity, isSourceRef, havingClauses?, selectClause?, fnHavingClauses?, mainSource?, sanitizeCallbackRows) => NamespacedAndKeyedStream;

Processes the GROUP BY clause with optional HAVING and SELECT Works with the new $selected structure from early SELECT processing

Parameters
pipeline

NamespacedAndKeyedStream

groupByClause

GroupBy

valueIdentity

ValueIdentity

isSourceRef

(ref) => boolean

Whether a ref reads a field of the query's own rows.

havingClauses?

Where[]

selectClause?

Select

fnHavingClauses?

((row) => any)[]

mainSource?

string

sanitizeCallbackRows?

boolean = false

Returns

NamespacedAndKeyedStream

replaceAggregatesByRefs

ts
replaceAggregatesByRefs: (havingExpr, selectClause, resultAlias) => BasicExpression;

Transforms expressions to replace aggregate functions with references to computed values.

For aggregate expressions, finds matching aggregates in the SELECT clause and replaces them with PropRef([resultAlias, alias]) to reference the computed aggregate value.

Ref expressions (table columns and $selected fields) and value expressions are passed through unchanged. Function expressions are recursively transformed.

Parameters
havingExpr

| Aggregate<any> | BasicExpression

The expression to transform (can be aggregate, ref, func, or val)

selectClause

Select

The SELECT clause containing aliases and aggregate definitions

resultAlias?

string = ...

The namespace alias for SELECT results (default: '$selected')

Returns

BasicExpression

A transformed BasicExpression that references computed values instead of raw expressions


having?

ts
optional having?: Where[];

Defined in: packages/db/src/query/ir.ts:24


join?

ts
optional join?: Join;

Defined in: packages/db/src/query/ir.ts:19


limit?

ts
optional limit?: number;

Defined in: packages/db/src/query/ir.ts:26


offset?

ts
optional offset?: number;

Defined in: packages/db/src/query/ir.ts:27


orderBy?

ts
optional orderBy?: OrderBy;

Defined in: packages/db/src/query/ir.ts:25


select?

ts
optional select?: Select;

Defined in: packages/db/src/query/ir.ts:18


singleResult?

ts
optional singleResult?: true;

Defined in: packages/db/src/query/ir.ts:29


where?

ts
optional where?: Where[];

Defined in: packages/db/src/query/ir.ts:20