Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions __fixtures__/generated/generated.json
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,11 @@
"pretty/misc-15.sql": "ALTER DEFAULT PRIVILEGES IN SCHEMA dashboard_jobs \n GRANT EXECUTE ON FUNCTIONS TO administrator",
"pretty/misc-16.sql": "GRANT EXECUTE ON FUNCTION dashboard_private.uuid_generate_seeded_uuid TO PUBLIC",
"pretty/misc-17.sql": "SELECT CAST(t.date AT TIME ZONE $$America/New_York$$ AS text)::date FROM tbl t",
"pretty/joins-1.sql": "SELECT *\nFROM public.posts AS t0 INNER JOIN public.users ON t0.author_id = users.id",
"pretty/joins-2.sql": "SELECT *\nFROM public.posts AS t0 LEFT OUTER JOIN public.comments ON t0.id = comments.post_id",
"pretty/joins-3.sql": "SELECT *\nFROM public.posts AS t0 INNER JOIN public.users ON t0.author_id = users.id LEFT OUTER JOIN public.categories ON t0.category_id = categories.id",
"pretty/joins-4.sql": "SELECT\n t0.id,\n t0.title,\n users.name\nFROM public.posts AS t0 INNER JOIN public.users ON t0.author_id = users.id",
"pretty/joins-5.sql": "SELECT id\nFROM public.users",
"pretty/formatting-1.sql": "EXPLAIN (COSTS OFF) SELECT * FROM onek2 WHERE unique2 = 11 AND stringu1 = 'ATAAAA'",
"pretty/formatting-2.sql": "EXPLAIN SELECT * FROM onek2 WHERE unique2 = 11 AND stringu1 = 'ATAAAA'",
"pretty/formatting-3.sql": "INSERT INTO objects.object (name, val, active, hash)\nVALUES ('name', 'val', 't'::boolean, 'abcdefg'),\n ('name', 'val', 't'::boolean, 'abcdefg'),\n ('name', 'val', 't'::boolean, 'abcdefg')",
Expand Down
22 changes: 22 additions & 0 deletions __fixtures__/kitchen-sink/pretty/joins.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
-- 1. Simple inner join
SELECT *
FROM public.posts AS t0 INNER JOIN public.users ON t0.author_id = users.id;

-- 2. Left outer join
SELECT *
FROM public.posts AS t0 LEFT OUTER JOIN public.comments ON t0.id = comments.post_id;

-- 3. Multiple joins
SELECT *
FROM public.posts AS t0 INNER JOIN public.users ON t0.author_id = users.id LEFT OUTER JOIN public.categories ON t0.category_id = categories.id;

-- 4. Joined tables with specific columns
SELECT
t0.id,
t0.title,
users.name
FROM public.posts AS t0 INNER JOIN public.users ON t0.author_id = users.id;

-- 5. Raw ast passthrough
SELECT id
FROM public.users;
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing

exports[`non-pretty: pretty/joins-1.sql 1`] = `"SELECT * FROM public.posts AS t0 JOIN public.users ON t0.author_id = users.id"`;

exports[`non-pretty: pretty/joins-2.sql 1`] = `"SELECT * FROM public.posts AS t0 LEFT JOIN public.comments ON t0.id = comments.post_id"`;

exports[`non-pretty: pretty/joins-3.sql 1`] = `"SELECT * FROM public.posts AS t0 JOIN public.users ON t0.author_id = users.id LEFT JOIN public.categories ON t0.category_id = categories.id"`;

exports[`non-pretty: pretty/joins-4.sql 1`] = `"SELECT t0.id, t0.title, users.name FROM public.posts AS t0 JOIN public.users ON t0.author_id = users.id"`;

exports[`non-pretty: pretty/joins-5.sql 1`] = `"SELECT id FROM public.users"`;

exports[`pretty: pretty/joins-1.sql 1`] = `
"SELECT *
FROM public.posts AS t0
JOIN public.users ON t0.author_id = users.id"
`;

exports[`pretty: pretty/joins-2.sql 1`] = `
"SELECT *
FROM public.posts AS t0
LEFT JOIN public.comments ON t0.id = comments.post_id"
`;

exports[`pretty: pretty/joins-3.sql 1`] = `
"SELECT *
FROM public.posts AS t0
JOIN public.users ON t0.author_id = users.id
LEFT JOIN public.categories ON t0.category_id = categories.id"
`;

exports[`pretty: pretty/joins-4.sql 1`] = `
"SELECT
t0.id,
t0.title,
users.name
FROM public.posts AS t0
JOIN public.users ON t0.author_id = users.id"
`;

exports[`pretty: pretty/joins-5.sql 1`] = `
"SELECT id
FROM public.users"
`;
11 changes: 11 additions & 0 deletions packages/deparser/__tests__/pretty/joins-pretty.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { PrettyTest } from '../../test-utils/PrettyTest';

const prettyTest = new PrettyTest([
'pretty/joins-1.sql',
'pretty/joins-2.sql',
'pretty/joins-3.sql',
'pretty/joins-4.sql',
'pretty/joins-5.sql',
]);

prettyTest.generateTests();