MCPcopy Create free account
hub / github.com/mikro-orm/mikro-orm / addCte

Method addCte

packages/sql/src/query/QueryBuilder.ts:2874–2897  ·  view source on GitHub ↗
(
    name: string,
    query: QueryBuilder<any> | NativeQueryBuilder | RawQueryFragment,
    options?: CteOptions,
    recursive?: boolean,
  )

Source from the content-addressed store, hash-verified

2872 }
2873
2874 private addCte(
2875 name: string,
2876 query: QueryBuilder<any> | NativeQueryBuilder | RawQueryFragment,
2877 options?: CteOptions,
2878 recursive?: boolean,
2879 ): this {
2880 this.ensureNotFinalized();
2881
2882 if (this.#state.ctes.some(cte => cte.name === name)) {
2883 throw new Error(`CTE with name '${name}' already exists`);
2884 }
2885
2886 // Eagerly compile QueryBuilder to RawQueryFragment — later mutations to the sub-query won't be reflected
2887 const compiled = query instanceof QueryBuilder ? query.toRaw() : query;
2888 this.#state.ctes.push({
2889 name,
2890 query: compiled,
2891 recursive,
2892 columns: options?.columns,
2893 materialized: options?.materialized,
2894 meta: query instanceof QueryBuilder ? query.mainAlias.meta : undefined,
2895 });
2896 return this;
2897 }
2898
2899 clone(
2900 reset?: boolean | (keyof QBState<Entity>)[],

Callers 2

withMethod · 0.95
withRecursiveMethod · 0.95

Calls 3

ensureNotFinalizedMethod · 0.95
pushMethod · 0.80
toRawMethod · 0.45

Tested by

no test coverage detected