Home / Function/ joinViewAsSubquery() — drizzle-orm Function Reference

joinViewAsSubquery() — drizzle-orm Function Reference

Architecture documentation for the joinViewAsSubquery() function in index.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  b3191ceb_fea1_64c4_4c90_9fbbec38e8f5["joinViewAsSubquery()"]
  34f01008_7c45_3804_1fad_b8b59cd8a413["MyDurableObject"]
  b3191ceb_fea1_64c4_4c90_9fbbec38e8f5 -->|defined in| 34f01008_7c45_3804_1fad_b8b59cd8a413
  7c7acbfe_6328_c8df_feba_552ee62a84d9["default.fetch()"]
  7c7acbfe_6328_c8df_feba_552ee62a84d9 -->|calls| b3191ceb_fea1_64c4_4c90_9fbbec38e8f5
  b19b108f_def7_3a32_99a3_c8be51ce2fbf["beforeEach()"]
  b3191ceb_fea1_64c4_4c90_9fbbec38e8f5 -->|calls| b19b108f_def7_3a32_99a3_c8be51ce2fbf
  style b3191ceb_fea1_64c4_4c90_9fbbec38e8f5 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

integration-tests/tests/sqlite/durable-objects/index.ts lines 2253–2311

	async joinViewAsSubquery(): Promise<void> {
		try {
			await this.beforeEach();
			const users = sqliteTable('users_join_view', {
				id: integer('id').primaryKey(),
				name: text('name').notNull(),
				cityId: integer('city_id').notNull(),
			});

			const newYorkers = sqliteView('new_yorkers').as((qb) => qb.select().from(users).where(eq(users.cityId, 1)));

			this.db.run(sql`drop table if exists ${users}`);
			this.db.run(sql`drop view if exists ${newYorkers}`);

			this.db.run(
				sql`create table ${users} (id integer not null primary key, name text not null, city_id integer not null)`,
			);
			this.db.run(sql`create view if not exists ${newYorkers} as ${getViewConfig(newYorkers).query}`);

			this.db
				.insert(users)
				.values([
					{ name: 'John', cityId: 1 },
					{ name: 'Jane', cityId: 2 },
					{ name: 'Jack', cityId: 1 },
					{ name: 'Jill', cityId: 2 },
				])
				.run();

			const sq = this.db.select().from(newYorkers).as('new_yorkers_sq');

			const result = await this.db.select().from(users).leftJoin(sq, eq(users.id, sq.id)).all();

			expect(result).deep.equal([
				{
					users_join_view: { id: 1, name: 'John', cityId: 1 },
					new_yorkers_sq: { id: 1, name: 'John', cityId: 1 },
				},
				{
					users_join_view: { id: 2, name: 'Jane', cityId: 2 },
					new_yorkers_sq: null,
				},
				{
					users_join_view: { id: 3, name: 'Jack', cityId: 1 },
					new_yorkers_sq: { id: 3, name: 'Jack', cityId: 1 },
				},
				{
					users_join_view: { id: 4, name: 'Jill', cityId: 2 },
					new_yorkers_sq: null,
				},
			]);

			this.db.run(sql`drop view ${newYorkers}`);
			this.db.run(sql`drop table ${users}`);
		} catch (error: any) {
			console.error(error);
			throw new Error(`joinViewAsSubquery error`);
		}
	}

Domain

Subdomains

Calls

Called By

Frequently Asked Questions

What does joinViewAsSubquery() do?
joinViewAsSubquery() is a function in the drizzle-orm codebase, defined in integration-tests/tests/sqlite/durable-objects/index.ts.
Where is joinViewAsSubquery() defined?
joinViewAsSubquery() is defined in integration-tests/tests/sqlite/durable-objects/index.ts at line 2253.
What does joinViewAsSubquery() call?
joinViewAsSubquery() calls 1 function(s): beforeEach.
What calls joinViewAsSubquery()?
joinViewAsSubquery() is called by 1 function(s): default.fetch.

Analyze Your Own Codebase

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

Try Supermodel Free