Home / Class/ PgRefreshMaterializedView Class — drizzle-orm Architecture

PgRefreshMaterializedView Class — drizzle-orm Architecture

Architecture documentation for the PgRefreshMaterializedView class in refresh-materialized-view.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  4290a7a8_4f2b_6cec_2b27_e81313bf4d01["PgRefreshMaterializedView"]
  41476081_497d_90a4_b230_43e26c58011b["refresh-materialized-view.ts"]
  4290a7a8_4f2b_6cec_2b27_e81313bf4d01 -->|defined in| 41476081_497d_90a4_b230_43e26c58011b
  561ee368_f6b4_bae3_869d_8d4b2e53fed7["constructor()"]
  4290a7a8_4f2b_6cec_2b27_e81313bf4d01 -->|method| 561ee368_f6b4_bae3_869d_8d4b2e53fed7
  ad674917_fca2_6bf1_8b0f_c0562d9de9f8["concurrently()"]
  4290a7a8_4f2b_6cec_2b27_e81313bf4d01 -->|method| ad674917_fca2_6bf1_8b0f_c0562d9de9f8
  02aa3b35_d539_e914_f954_7675c49dab0c["withNoData()"]
  4290a7a8_4f2b_6cec_2b27_e81313bf4d01 -->|method| 02aa3b35_d539_e914_f954_7675c49dab0c
  15243156_6c20_c1ea_d2ec_11274503187b["getSQL()"]
  4290a7a8_4f2b_6cec_2b27_e81313bf4d01 -->|method| 15243156_6c20_c1ea_d2ec_11274503187b
  15d4803b_9d4e_efe4_c205_c7325da714d4["toSQL()"]
  4290a7a8_4f2b_6cec_2b27_e81313bf4d01 -->|method| 15d4803b_9d4e_efe4_c205_c7325da714d4
  e6527b48_9946_f88a_c1ac_3a27b011358b["_prepare()"]
  4290a7a8_4f2b_6cec_2b27_e81313bf4d01 -->|method| e6527b48_9946_f88a_c1ac_3a27b011358b
  ef1f5a93_e85d_ce36_14cc_056a1d5f0400["prepare()"]
  4290a7a8_4f2b_6cec_2b27_e81313bf4d01 -->|method| ef1f5a93_e85d_ce36_14cc_056a1d5f0400
  f053f3a2_712b_49c3_821e_8ad7cc8412c4["setToken()"]
  4290a7a8_4f2b_6cec_2b27_e81313bf4d01 -->|method| f053f3a2_712b_49c3_821e_8ad7cc8412c4

Relationship Graph

Source Code

drizzle-orm/src/pg-core/query-builders/refresh-materialized-view.ts lines 30–108

export class PgRefreshMaterializedView<TQueryResult extends PgQueryResultHKT>
	extends QueryPromise<PgQueryResultKind<TQueryResult, never>>
	implements RunnableQuery<PgQueryResultKind<TQueryResult, never>, 'pg'>, SQLWrapper
{
	static override readonly [entityKind]: string = 'PgRefreshMaterializedView';

	private config: {
		view: PgMaterializedView;
		concurrently?: boolean;
		withNoData?: boolean;
	};

	constructor(
		view: PgMaterializedView,
		private session: PgSession,
		private dialect: PgDialect,
	) {
		super();
		this.config = { view };
	}

	concurrently(): this {
		if (this.config.withNoData !== undefined) {
			throw new Error('Cannot use concurrently and withNoData together');
		}
		this.config.concurrently = true;
		return this;
	}

	withNoData(): this {
		if (this.config.concurrently !== undefined) {
			throw new Error('Cannot use concurrently and withNoData together');
		}
		this.config.withNoData = true;
		return this;
	}

	/** @internal */
	getSQL(): SQL {
		return this.dialect.buildRefreshMaterializedViewQuery(this.config);
	}

	toSQL(): Query {
		const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
		return rest;
	}

	/** @internal */
	_prepare(name?: string): PgPreparedQuery<
		PreparedQueryConfig & {
			execute: PgQueryResultKind<TQueryResult, never>;
		}
	> {
		return tracer.startActiveSpan('drizzle.prepareQuery', () => {
			return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), undefined, name, true);
		});
	}

	prepare(name: string): PgPreparedQuery<
		PreparedQueryConfig & {
			execute: PgQueryResultKind<TQueryResult, never>;
		}
	> {
		return this._prepare(name);
	}

	private authToken?: NeonAuthToken;
	/** @internal */
	setToken(token: NeonAuthToken) {
		this.authToken = token;
		return this;
	}

	execute: ReturnType<this['prepare']>['execute'] = (placeholderValues) => {
		return tracer.startActiveSpan('drizzle.operation', () => {
			return this._prepare().execute(placeholderValues, this.authToken);
		});
	};
}

Domain

Frequently Asked Questions

What is the PgRefreshMaterializedView class?
PgRefreshMaterializedView is a class in the drizzle-orm codebase, defined in drizzle-orm/src/pg-core/query-builders/refresh-materialized-view.ts.
Where is PgRefreshMaterializedView defined?
PgRefreshMaterializedView is defined in drizzle-orm/src/pg-core/query-builders/refresh-materialized-view.ts at line 30.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free