Skip to content

routier-collection


routier-collection / datastore/src / JoinQueryable

Class: JoinQueryable<TOuter, Shape, E> ​

Defined in: datastore/src/queryable/JoinQueryable.ts:30

Extends ​

  • QueryableExecutor<TOuter, Shape>

Type Parameters ​

TOuter ​

TOuter extends object

Shape ​

Shape

E ​

E extends boolean = false

Constructors ​

Constructor ​

new JoinQueryable<TOuter, Shape, E>(dependencies, request): JoinQueryable<TOuter, Shape, E>

Defined in: datastore/src/queryable/JoinQueryable.ts:32

Parameters ​

dependencies ​

CollectionDependencies<TOuter>

request ​

RequestContext<TOuter>

Returns ​

JoinQueryable<TOuter, Shape, E>

Overrides ​

QueryableExecutor<TOuter, Shape>.constructor

Methods ​

where() ​

Call Signature ​

where(expression): JoinQueryable<TOuter, Shape, E>

Defined in: datastore/src/queryable/JoinQueryable.ts:59

Filters the pairs.

Runs AFTER the join, over the tuples, so a condition spanning both sides (([p, m]) => p.rank > m.rank) is expressible here and nowhere else. Correct on every backend; accelerated only where the query builder can split a single-side conjunct off and push it down.

Parameters ​
expression ​

Filter<Shape>

Returns ​

JoinQueryable<TOuter, Shape, E>

Call Signature ​

where<P>(selector, params): JoinQueryable<TOuter, Shape, E>

Defined in: datastore/src/queryable/JoinQueryable.ts:60

Filters the pairs.

Runs AFTER the join, over the tuples, so a condition spanning both sides (([p, m]) => p.rank > m.rank) is expressible here and nowhere else. Correct on every backend; accelerated only where the query builder can split a single-side conjunct off and push it down.

Type Parameters ​
P ​

P extends object

Parameters ​
selector ​

ParamsFilter<Shape, P>

params ​

P

Returns ​

JoinQueryable<TOuter, Shape, E>


map() ​

map<R>(selector): JoinQueryable<TOuter, R, E>

Defined in: datastore/src/queryable/JoinQueryable.ts:90

Projects each pair into a shape of your own.

Recorded with NO fields, unlike Queryable.map. Fields are property paths on one schema, resolved so a backend can select columns and a translator can deserialize them; a tuple has neither a schema nor columns, and both halves are already deserialized by the time this runs. An invented field list would name properties on a two-element array.

Type Parameters ​

R ​

R

Parameters ​

selector ​

GenericFunction<Shape, R>

Returns ​

JoinQueryable<TOuter, R, E>


sort() ​

sort(selector): JoinQueryable<TOuter, Shape, E>

Defined in: datastore/src/queryable/JoinQueryable.ts:103

Orders the pairs.

Worth stating plainly: without this, pair ORDER IS UNDEFINED. It differs between a native SQL join and an in-memory hash join, and that is the one difference between interpretations a caller can observe.

Parameters ​

selector ​

GenericFunction<Shape, unknown>

Returns ​

JoinQueryable<TOuter, Shape, E>


sortDescending() ​

sortDescending(selector): JoinQueryable<TOuter, Shape, E>

Defined in: datastore/src/queryable/JoinQueryable.ts:108

Parameters ​

selector ​

GenericFunction<Shape, unknown>

Returns ​

JoinQueryable<TOuter, Shape, E>


skip() ​

skip(amount): JoinQueryable<TOuter, Shape, E>

Defined in: datastore/src/queryable/JoinQueryable.ts:126

Parameters ​

amount ​

number

Returns ​

JoinQueryable<TOuter, Shape, E>


take() ​

take(amount): JoinQueryable<TOuter, Shape, E>

Defined in: datastore/src/queryable/JoinQueryable.ts:131

Parameters ​

amount ​

number

Returns ​

JoinQueryable<TOuter, Shape, E>


explain() ​

explain(): JoinQueryable<TOuter, Shape, true>

Defined in: datastore/src/queryable/JoinQueryable.ts:137

See QueryableAsync.explain. Terminals after this deliver { data, explanation }.

Returns ​

JoinQueryable<TOuter, Shape, true>


toArray() ​

toArray(done): void

Defined in: datastore/src/queryable/JoinQueryable.ts:141

Parameters ​

done ​

CallbackResult<Explainable<E, Shape[]>>

Returns ​

void


toArrayAsync() ​

toArrayAsync(): Promise<Explainable<E, Shape[]>>

Defined in: datastore/src/queryable/JoinQueryable.ts:145

Returns ​

Promise<Explainable<E, Shape[]>>


first() ​

first(done): void

Defined in: datastore/src/queryable/JoinQueryable.ts:149

Parameters ​

done ​

CallbackResult<Explainable<E, Shape>>

Returns ​

void


firstAsync() ​

firstAsync(): Promise<Explainable<E, Shape>>

Defined in: datastore/src/queryable/JoinQueryable.ts:167

Returns ​

Promise<Explainable<E, Shape>>


firstOrUndefined() ​

firstOrUndefined(done): void

Defined in: datastore/src/queryable/JoinQueryable.ts:171

Parameters ​

done ​

CallbackResult<Explainable<E, Shape>>

Returns ​

void


firstOrUndefinedAsync() ​

firstOrUndefinedAsync(): Promise<Explainable<E, Shape>>

Defined in: datastore/src/queryable/JoinQueryable.ts:195

Returns ​

Promise<Explainable<E, Shape>>


count() ​

count(done): void

Defined in: datastore/src/queryable/JoinQueryable.ts:199

Parameters ​

done ​

CallbackResult<Explainable<E, number>>

Returns ​

void


countAsync() ​

countAsync(): Promise<Explainable<E, number>>

Defined in: datastore/src/queryable/JoinQueryable.ts:208

Returns ​

Promise<Explainable<E, number>>

Released under the MIT License.