Skip to content

Commit ea2dcd9

Browse files
committed
Merge commit '485d8360f0d38246383ab7b9df6d48590c8562e2' into alternation-engine
2 parents 0eb5d89 + 485d836 commit ea2dcd9

File tree

8 files changed

+453
-1
lines changed

8 files changed

+453
-1
lines changed

drizzle-orm/tests/casing/mssql-to-camel.test.ts

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,4 +189,72 @@ describe('mssql to camel case', () => {
189189
});
190190
expect(db.dialect.casing.cache).toEqual(usersCache);
191191
});
192+
193+
it('select columns as', ({ expect }) => {
194+
const query = db
195+
.select({ age: users.age.as('ageOfUser'), id: users.id.as('userId') })
196+
.from(users)
197+
.orderBy(asc(users.id.as('userId')));
198+
199+
expect(query.toSQL()).toEqual({
200+
sql: 'select [AGE] as [ageOfUser], [id] as [userId] from [users] order by [userId] asc',
201+
params: [],
202+
});
203+
});
204+
205+
it('select join columns as', ({ expect }) => {
206+
const query = db
207+
.select({ name: fullName, age: users.age.as('ageOfUser'), id: users.id.as('userId') })
208+
.from(users)
209+
.leftJoin(developers, eq(users.id.as('userId'), developers.user_id))
210+
.orderBy(asc(users.first_name));
211+
212+
expect(query.toSQL()).toEqual({
213+
sql:
214+
"select [users].[firstName] || ' ' || [users].[lastName] as [name], [users].[AGE] as [ageOfUser], [users].[id] as [userId] from [users] left join [test].[developers] on [userId] = [test].[developers].[userId] order by [users].[firstName] asc",
215+
params: [],
216+
});
217+
});
218+
219+
it('insert output as', ({ expect }) => {
220+
const query = db
221+
.insert(users)
222+
.output({ firstName: users.first_name, age: users.age.as('userAge') })
223+
.values({ first_name: 'John', last_name: 'Doe', age: 30 });
224+
225+
expect(query.toSQL()).toEqual({
226+
sql:
227+
'insert into [users] ([firstName], [lastName], [AGE]) output INSERTED.[firstName], INSERTED.[AGE] as [userAge] values (@par0, @par1, @par2)',
228+
params: ['John', 'Doe', 30],
229+
});
230+
});
231+
232+
it('update output as', ({ expect }) => {
233+
const query = db
234+
.update(users)
235+
.set({ first_name: 'John', last_name: 'Doe', age: 30 })
236+
.output({
237+
inserted: { firstName: users.first_name.as('usersNameIn'), age: users.age.as('ageIn') },
238+
deleted: { firstName: users.first_name.as('usersNameOut'), age: users.age.as('ageOut') },
239+
})
240+
.where(eq(users.id, 1));
241+
242+
expect(query.toSQL()).toEqual({
243+
sql:
244+
'update [users] set [firstName] = @par0, [lastName] = @par1, [AGE] = @par2 output INSERTED.[firstName] as [usersNameIn], INSERTED.[AGE] as [ageIn], DELETED.[firstName] as [usersNameOut], DELETED.[AGE] as [ageOut] where [users].[id] = @par3',
245+
params: ['John', 'Doe', 30, 1],
246+
});
247+
});
248+
249+
it('delete output as', ({ expect }) => {
250+
const query = db
251+
.delete(users)
252+
.output({ firstName: users.first_name, age: users.age.as('usersAge') })
253+
.where(eq(users.id, 1));
254+
255+
expect(query.toSQL()).toEqual({
256+
sql: 'delete from [users] output DELETED.[firstName], DELETED.[AGE] as [usersAge] where [users].[id] = @par0',
257+
params: [1],
258+
});
259+
});
192260
});

drizzle-orm/tests/casing/mssql-to-snake.test.ts

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,4 +173,72 @@ describe('mssql to snake case', () => {
173173
});
174174
expect(db.dialect.casing.cache).toEqual(usersCache);
175175
});
176+
177+
it('select columns as', ({ expect }) => {
178+
const query = db
179+
.select({ age: users.age.as('ageOfUser'), id: users.id.as('userId') })
180+
.from(users)
181+
.orderBy(asc(users.id.as('userId')));
182+
183+
expect(query.toSQL()).toEqual({
184+
sql: 'select [AGE] as [ageOfUser], [id] as [userId] from [users] order by [userId] asc',
185+
params: [],
186+
});
187+
});
188+
189+
it('select join columns as', ({ expect }) => {
190+
const query = db
191+
.select({ name: fullName, age: users.age.as('ageOfUser'), id: users.id.as('userId') })
192+
.from(users)
193+
.leftJoin(developers, eq(users.id.as('userId'), developers.userId))
194+
.orderBy(asc(users.firstName));
195+
196+
expect(query.toSQL()).toEqual({
197+
sql:
198+
"select [users].[first_name] || ' ' || [users].[last_name] as [name], [users].[AGE] as [ageOfUser], [users].[id] as [userId] from [users] left join [test].[developers] on [userId] = [test].[developers].[user_id] order by [users].[first_name] asc",
199+
params: [],
200+
});
201+
});
202+
203+
it('insert output as', ({ expect }) => {
204+
const query = db
205+
.insert(users)
206+
.output({ firstName: users.firstName, age: users.age.as('userAge') })
207+
.values({ firstName: 'John', lastName: 'Doe', age: 30 });
208+
209+
expect(query.toSQL()).toEqual({
210+
sql:
211+
'insert into [users] ([first_name], [last_name], [AGE]) output INSERTED.[first_name], INSERTED.[AGE] as [userAge] values (@par0, @par1, @par2)',
212+
params: ['John', 'Doe', 30],
213+
});
214+
});
215+
216+
it('update output as', ({ expect }) => {
217+
const query = db
218+
.update(users)
219+
.set({ firstName: 'John', lastName: 'Doe', age: 30 })
220+
.output({
221+
inserted: { firstName: users.firstName.as('usersNameIn'), age: users.age.as('ageIn') },
222+
deleted: { firstName: users.firstName.as('usersNameOut'), age: users.age.as('ageOut') },
223+
})
224+
.where(eq(users.id, 1));
225+
226+
expect(query.toSQL()).toEqual({
227+
sql:
228+
'update [users] set [first_name] = @par0, [last_name] = @par1, [AGE] = @par2 output INSERTED.[first_name] as [usersNameIn], INSERTED.[AGE] as [ageIn], DELETED.[first_name] as [usersNameOut], DELETED.[AGE] as [ageOut] where [users].[id] = @par3',
229+
params: ['John', 'Doe', 30, 1],
230+
});
231+
});
232+
233+
it('delete output as', ({ expect }) => {
234+
const query = db
235+
.delete(users)
236+
.output({ firstName: users.firstName, age: users.age.as('usersAge') })
237+
.where(eq(users.id, 1));
238+
239+
expect(query.toSQL()).toEqual({
240+
sql: 'delete from [users] output DELETED.[first_name], DELETED.[AGE] as [usersAge] where [users].[id] = @par0',
241+
params: [1],
242+
});
243+
});
176244
});

drizzle-orm/tests/casing/mysql-to-camel.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,4 +296,30 @@ describe('mysql to snake case', () => {
296296
});
297297
expect(db.dialect.casing.cache).toEqual(usersCache);
298298
});
299+
300+
it('select columns as', ({ expect }) => {
301+
const query = db
302+
.select({ age: users.age.as('ageOfUser'), id: users.id.as('userId') })
303+
.from(users)
304+
.orderBy(asc(users.id.as('userId')));
305+
306+
expect(query.toSQL()).toEqual({
307+
sql: 'select `AGE` as `ageOfUser`, `id` as `userId` from `users` order by `userId` asc',
308+
params: [],
309+
});
310+
});
311+
312+
it('select join columns as', ({ expect }) => {
313+
const query = db
314+
.select({ name: fullName, age: users.age.as('ageOfUser'), id: users.id.as('userId') })
315+
.from(users)
316+
.leftJoin(developers, eq(users.id.as('userId'), developers.user_id))
317+
.orderBy(asc(users.first_name));
318+
319+
expect(query.toSQL()).toEqual({
320+
sql:
321+
"select `users`.`firstName` || ' ' || `users`.`lastName` as `name`, `users`.`AGE` as `ageOfUser`, `users`.`id` as `userId` from `users` left join `test`.`developers` on `userId` = `test`.`developers`.`userId` order by `users`.`firstName` asc",
322+
params: [],
323+
});
324+
});
299325
});

drizzle-orm/tests/casing/mysql-to-snake.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,4 +296,30 @@ describe('mysql to snake case', () => {
296296
});
297297
expect(db.dialect.casing.cache).toEqual(usersCache);
298298
});
299+
300+
it('select columns as', ({ expect }) => {
301+
const query = db
302+
.select({ age: users.age.as('ageOfUser'), id: users.id.as('userId') })
303+
.from(users)
304+
.orderBy(asc(users.id.as('userId')));
305+
306+
expect(query.toSQL()).toEqual({
307+
sql: 'select `AGE` as `ageOfUser`, `id` as `userId` from `users` order by `userId` asc',
308+
params: [],
309+
});
310+
});
311+
312+
it('select join columns as', ({ expect }) => {
313+
const query = db
314+
.select({ name: fullName, age: users.age.as('ageOfUser'), id: users.id.as('userId') })
315+
.from(users)
316+
.leftJoin(developers, eq(users.id.as('userId'), developers.userId))
317+
.orderBy(asc(users.firstName));
318+
319+
expect(query.toSQL()).toEqual({
320+
sql:
321+
"select `users`.`first_name` || ' ' || `users`.`last_name` as `name`, `users`.`AGE` as `ageOfUser`, `users`.`id` as `userId` from `users` left join `test`.`developers` on `userId` = `test`.`developers`.`user_id` order by `users`.`first_name` asc",
322+
params: [],
323+
});
324+
});
299325
});

drizzle-orm/tests/casing/pg-to-camel.test.ts

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,4 +243,70 @@ describe('postgres to camel case', () => {
243243
});
244244
expect(db.dialect.casing.cache).toEqual(usersCache);
245245
});
246+
247+
it('select columns as', ({ expect }) => {
248+
const query = db
249+
.select({ age: users.age.as('ageOfUser'), id: users.id.as('userId') })
250+
.from(users)
251+
.orderBy(asc(users.id.as('userId')));
252+
253+
expect(query.toSQL()).toEqual({
254+
sql: 'select "AGE" as "ageOfUser", "id" as "userId" from "users" order by "userId" asc',
255+
params: [],
256+
});
257+
});
258+
259+
it('select join columns as', ({ expect }) => {
260+
const query = db
261+
.select({ name: fullName, age: users.age.as('ageOfUser'), id: users.id.as('userId') })
262+
.from(users)
263+
.leftJoin(developers, eq(users.id.as('userId'), developers.user_id))
264+
.orderBy(asc(users.first_name));
265+
266+
expect(query.toSQL()).toEqual({
267+
sql:
268+
'select "users"."firstName" || \' \' || "users"."lastName" as "name", "users"."AGE" as "ageOfUser", "users"."id" as "userId" from "users" left join "test"."developers" on "userId" = "test"."developers"."userId" order by "users"."firstName" asc',
269+
params: [],
270+
});
271+
});
272+
273+
it('insert (on conflict do update) returning as', ({ expect }) => {
274+
const query = db
275+
.insert(users)
276+
.values({ first_name: 'John', last_name: 'Doe', age: 30 })
277+
.onConflictDoUpdate({ target: users.first_name.as('userFirstName'), set: { age: 31 } })
278+
.returning({ firstName: users.first_name, age: users.age.as('userAge') });
279+
280+
expect(query.toSQL()).toEqual({
281+
sql:
282+
'insert into "users" ("id", "firstName", "lastName", "AGE") values (default, $1, $2, $3) on conflict ("userFirstName") do update set "AGE" = $4 returning "firstName", "AGE" as "userAge"',
283+
params: ['John', 'Doe', 30, 31],
284+
});
285+
});
286+
287+
it('update returning as', ({ expect }) => {
288+
const query = db
289+
.update(users)
290+
.set({ first_name: 'John', last_name: 'Doe', age: 30 })
291+
.where(eq(users.id, 1))
292+
.returning({ firstName: users.first_name.as('usersName'), age: users.age });
293+
294+
expect(query.toSQL()).toEqual({
295+
sql:
296+
'update "users" set "firstName" = $1, "lastName" = $2, "AGE" = $3 where "users"."id" = $4 returning "firstName" as "usersName", "AGE"',
297+
params: ['John', 'Doe', 30, 1],
298+
});
299+
});
300+
301+
it('delete returning as', ({ expect }) => {
302+
const query = db
303+
.delete(users)
304+
.where(eq(users.id, 1))
305+
.returning({ firstName: users.first_name, age: users.age.as('usersAge') });
306+
307+
expect(query.toSQL()).toEqual({
308+
sql: 'delete from "users" where "users"."id" = $1 returning "firstName", "AGE" as "usersAge"',
309+
params: [1],
310+
});
311+
});
246312
});

drizzle-orm/tests/casing/pg-to-snake.test.ts

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,4 +245,70 @@ describe('postgres to snake case', () => {
245245
});
246246
expect(db.dialect.casing.cache).toEqual(usersCache);
247247
});
248+
249+
it('select columns as', ({ expect }) => {
250+
const query = db
251+
.select({ age: users.age.as('ageOfUser'), id: users.id.as('userId') })
252+
.from(users)
253+
.orderBy(asc(users.id.as('userId')));
254+
255+
expect(query.toSQL()).toEqual({
256+
sql: 'select "AGE" as "ageOfUser", "id" as "userId" from "users" order by "userId" asc',
257+
params: [],
258+
});
259+
});
260+
261+
it('select join columns as', ({ expect }) => {
262+
const query = db
263+
.select({ name: fullName, age: users.age.as('ageOfUser'), id: users.id.as('userId') })
264+
.from(users)
265+
.leftJoin(developers, eq(users.id.as('userId'), developers.userId))
266+
.orderBy(asc(users.firstName));
267+
268+
expect(query.toSQL()).toEqual({
269+
sql:
270+
'select "users"."first_name" || \' \' || "users"."last_name" as "name", "users"."AGE" as "ageOfUser", "users"."id" as "userId" from "users" left join "test"."developers" on "userId" = "test"."developers"."user_id" order by "users"."first_name" asc',
271+
params: [],
272+
});
273+
});
274+
275+
it('insert (on conflict do update) returning as', ({ expect }) => {
276+
const query = db
277+
.insert(users)
278+
.values({ firstName: 'John', lastName: 'Doe', age: 30 })
279+
.onConflictDoUpdate({ target: users.firstName.as('userFirstName'), set: { age: 31 } })
280+
.returning({ firstName: users.firstName, age: users.age.as('userAge') });
281+
282+
expect(query.toSQL()).toEqual({
283+
sql:
284+
'insert into "users" ("id", "first_name", "last_name", "AGE") values (default, $1, $2, $3) on conflict ("userFirstName") do update set "AGE" = $4 returning "first_name", "AGE" as "userAge"',
285+
params: ['John', 'Doe', 30, 31],
286+
});
287+
});
288+
289+
it('update returning as', ({ expect }) => {
290+
const query = db
291+
.update(users)
292+
.set({ firstName: 'John', lastName: 'Doe', age: 30 })
293+
.where(eq(users.id, 1))
294+
.returning({ firstName: users.firstName.as('usersName'), age: users.age });
295+
296+
expect(query.toSQL()).toEqual({
297+
sql:
298+
'update "users" set "first_name" = $1, "last_name" = $2, "AGE" = $3 where "users"."id" = $4 returning "first_name" as "usersName", "AGE"',
299+
params: ['John', 'Doe', 30, 1],
300+
});
301+
});
302+
303+
it('delete returning as', ({ expect }) => {
304+
const query = db
305+
.delete(users)
306+
.where(eq(users.id, 1))
307+
.returning({ firstName: users.firstName, age: users.age.as('usersAge') });
308+
309+
expect(query.toSQL()).toEqual({
310+
sql: 'delete from "users" where "users"."id" = $1 returning "first_name", "AGE" as "usersAge"',
311+
params: [1],
312+
});
313+
});
248314
});

0 commit comments

Comments
 (0)