subquery.ts — drizzle-orm Source File
Architecture documentation for subquery.ts, a typescript file in the drizzle-orm codebase. 6 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR b580f55e_6052_dbd6_2047_8bd60d170ba1["subquery.ts"] 02ee7a70_490f_3b80_fa60_d59aaa62cd1d["db.ts"] b580f55e_6052_dbd6_2047_8bd60d170ba1 --> 02ee7a70_490f_3b80_fa60_d59aaa62cd1d 25b05299_f48f_bceb_01ca_1343d330a8f7["utils.ts"] b580f55e_6052_dbd6_2047_8bd60d170ba1 --> 25b05299_f48f_bceb_01ca_1343d330a8f7 076448f5_e30d_7700_bbe9_f5d1e76b579a["index.ts"] b580f55e_6052_dbd6_2047_8bd60d170ba1 --> 076448f5_e30d_7700_bbe9_f5d1e76b579a 5c46beaf_8b59_d2e3_def3_8af6daf1fccd["index.ts"] b580f55e_6052_dbd6_2047_8bd60d170ba1 --> 5c46beaf_8b59_d2e3_def3_8af6daf1fccd be483a7f_d5d7_7a9b_9a13_44a4a6aafbbd["sql.ts"] b580f55e_6052_dbd6_2047_8bd60d170ba1 --> be483a7f_d5d7_7a9b_9a13_44a4a6aafbbd ecce3253_1e75_a87f_27b3_ca87e81a3024["utils.ts"] b580f55e_6052_dbd6_2047_8bd60d170ba1 --> ecce3253_1e75_a87f_27b3_ca87e81a3024 style b580f55e_6052_dbd6_2047_8bd60d170ba1 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { Expect } from 'type-tests/utils.ts';
import { alias, gelTable, integer, text } from '~/gel-core/index.ts';
import { and, eq } from '~/sql/expressions/index.ts';
import { sql } from '~/sql/sql.ts';
import type { DrizzleTypeError, Equal } from '~/utils.ts';
import { db } from './db.ts';
const names = gelTable('names', {
id: integer('id').primaryKey(),
name: text('name'),
authorId: integer('author_id'),
});
const n1 = db
.select({
id: names.id,
name: names.name,
authorId: names.authorId,
count1: sql<number>`count(1)::int`.as('count1'),
})
.from(names)
.groupBy(names.id, names.name, names.authorId)
.as('n1');
const n2 = db
.select({
id: names.id,
authorId: names.authorId,
totalCount: sql<number>`count(1)::int`.as('totalCount'),
})
.from(names)
.groupBy(names.id, names.authorId)
.as('n2');
const result = await db
.select({
name: n1.name,
authorId: n1.authorId,
count1: n1.count1,
totalCount: n2.totalCount,
})
.from(n1)
.innerJoin(n2, and(eq(n2.id, n1.id), eq(n2.authorId, n1.authorId)));
Expect<
Equal<
{
name: string | null;
authorId: number | null;
count1: number;
totalCount: number;
}[],
typeof result
>
>;
const names2 = alias(names, 'names2');
const sq1 = db
.select({
id: names.id,
name: names.name,
id2: names2.id,
})
.from(names)
.leftJoin(names2, eq(names.name, names2.name))
.as('sq1');
const res = await db.select().from(sq1);
Expect<
Equal<
{
id: number;
name: string | null;
id2: number | null;
}[],
typeof res
>
>;
{
const sq = db.select({ count: sql<number>`count(1)::int` }).from(names).as('sq');
Expect<typeof sq.count extends DrizzleTypeError<any> ? true : false>;
}
const sqUnion = db.select().from(names).union(db.select().from(names2)).as('sqUnion');
const resUnion = await db.select().from(sqUnion);
Expect<
Equal<{
id: number;
name: string | null;
authorId: number | null;
}[], typeof resUnion>
>;
Domain
Dependencies
- db.ts
- index.ts
- index.ts
- sql.ts
- utils.ts
- utils.ts
Source
Frequently Asked Questions
What does subquery.ts do?
subquery.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain.
What does subquery.ts depend on?
subquery.ts imports 6 module(s): db.ts, index.ts, index.ts, sql.ts, utils.ts, utils.ts.
Where is subquery.ts in the architecture?
subquery.ts is located at drizzle-orm/type-tests/geldb/subquery.ts (domain: DrizzleORM, directory: drizzle-orm/type-tests/geldb).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free