Add missing orderbys (#6271)

pull/6263/head
Önder Kalacı 2022-08-30 11:49:15 +02:00 committed by GitHub
parent 895a484b39
commit 33af407ac8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 8 deletions

View File

@ -68,7 +68,7 @@ FROM my_films,
lateral(SELECT * FROM JSON_TABLE (js, '$.favorites[*]' COLUMNS (id FOR ORDINALITY, lateral(SELECT * FROM JSON_TABLE (js, '$.favorites[*]' COLUMNS (id FOR ORDINALITY,
kind text PATH '$.kind', kind text PATH '$.kind',
NESTED PATH '$.films[*]' COLUMNS (title text PATH '$.title', director text PATH '$.director'))) AS jt) as sub NESTED PATH '$.films[*]' COLUMNS (title text PATH '$.title', director text PATH '$.director'))) AS jt) as sub
WHERE my_films.id = 1; WHERE my_films.id = 1 ORDER BY 1,2,3,4;
id | kind | title | director id | kind | title | director
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | comedy | Bananas | Woody Allen 1 | comedy | Bananas | Woody Allen
@ -84,7 +84,7 @@ FROM my_films,
lateral(SELECT * FROM JSON_TABLE (js, '$.favorites[*]' COLUMNS (id FOR ORDINALITY, lateral(SELECT * FROM JSON_TABLE (js, '$.favorites[*]' COLUMNS (id FOR ORDINALITY,
kind text PATH '$.kind', kind text PATH '$.kind',
NESTED PATH '$.films[*]' COLUMNS (title text PATH '$.title', director text PATH '$.director'))) AS jt ORDER BY id DESC LIMIT 1) as sub NESTED PATH '$.films[*]' COLUMNS (title text PATH '$.title', director text PATH '$.director'))) AS jt ORDER BY id DESC LIMIT 1) as sub
WHERE my_films.id = 1; WHERE my_films.id = 1 ORDER BY 1,2,3,4;
id | kind | title | director id | kind | title | director
--------------------------------------------------------------------- ---------------------------------------------------------------------
4 | drama | Yojimbo | Akira Kurosawa 4 | drama | Yojimbo | Akira Kurosawa
@ -340,7 +340,8 @@ FROM
) )
PLAN (favs INNER ((films1 INNER film1) CROSS (films2 INNER film2))) PLAN (favs INNER ((films1 INNER film1) CROSS (films2 INNER film2)))
) AS jt ) AS jt
WHERE kind1 > kind2 AND director1 = director2; WHERE kind1 > kind2 AND director1 = director2
ORDER BY 1,2,3,4;
director | title1 | kind1 | title2 | kind2 director | title1 | kind1 | title2 | kind2
--------------------------------------------------------------------- ---------------------------------------------------------------------
Alfred Hitchcock | Vertigo | thriller | Psycho | horror Alfred Hitchcock | Vertigo | thriller | Psycho | horror
@ -425,7 +426,7 @@ from user_profiles WHERE anyjson IS NOT NULL ORDER BY 1;
SELECT i, SELECT i,
json_query('[{"x": "aaa"},{"x": "bbb"},{"x": "ccc"}]'::JSONB, '$[$i].x' passing id AS i RETURNING text omit quotes) json_query('[{"x": "aaa"},{"x": "bbb"},{"x": "ccc"}]'::JSONB, '$[$i].x' passing id AS i RETURNING text omit quotes)
FROM generate_series(0, 3) i FROM generate_series(0, 3) i
JOIN my_films ON(id = i); JOIN my_films ON(id = i) ORDER BY 1;
i | json_query i | json_query
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | bbb 1 | bbb

View File

@ -58,7 +58,7 @@ FROM my_films,
lateral(SELECT * FROM JSON_TABLE (js, '$.favorites[*]' COLUMNS (id FOR ORDINALITY, lateral(SELECT * FROM JSON_TABLE (js, '$.favorites[*]' COLUMNS (id FOR ORDINALITY,
kind text PATH '$.kind', kind text PATH '$.kind',
NESTED PATH '$.films[*]' COLUMNS (title text PATH '$.title', director text PATH '$.director'))) AS jt) as sub NESTED PATH '$.films[*]' COLUMNS (title text PATH '$.title', director text PATH '$.director'))) AS jt) as sub
WHERE my_films.id = 1; WHERE my_films.id = 1 ORDER BY 1,2,3,4;
-- router query with an explicit LATEREL SUBQUERY and LIMIT -- router query with an explicit LATEREL SUBQUERY and LIMIT
SELECT sub.* SELECT sub.*
@ -66,7 +66,7 @@ FROM my_films,
lateral(SELECT * FROM JSON_TABLE (js, '$.favorites[*]' COLUMNS (id FOR ORDINALITY, lateral(SELECT * FROM JSON_TABLE (js, '$.favorites[*]' COLUMNS (id FOR ORDINALITY,
kind text PATH '$.kind', kind text PATH '$.kind',
NESTED PATH '$.films[*]' COLUMNS (title text PATH '$.title', director text PATH '$.director'))) AS jt ORDER BY id DESC LIMIT 1) as sub NESTED PATH '$.films[*]' COLUMNS (title text PATH '$.title', director text PATH '$.director'))) AS jt ORDER BY id DESC LIMIT 1) as sub
WHERE my_films.id = 1; WHERE my_films.id = 1 ORDER BY 1,2,3,4;
-- set it DEBUG1 in case the plan changes -- set it DEBUG1 in case the plan changes
-- we can see details -- we can see details
@ -229,7 +229,8 @@ FROM
) )
PLAN (favs INNER ((films1 INNER film1) CROSS (films2 INNER film2))) PLAN (favs INNER ((films1 INNER film1) CROSS (films2 INNER film2)))
) AS jt ) AS jt
WHERE kind1 > kind2 AND director1 = director2; WHERE kind1 > kind2 AND director1 = director2
ORDER BY 1,2,3,4;
RESET client_min_messages; RESET client_min_messages;
@ -267,7 +268,7 @@ from user_profiles WHERE anyjson IS NOT NULL ORDER BY 1;
SELECT i, SELECT i,
json_query('[{"x": "aaa"},{"x": "bbb"},{"x": "ccc"}]'::JSONB, '$[$i].x' passing id AS i RETURNING text omit quotes) json_query('[{"x": "aaa"},{"x": "bbb"},{"x": "ccc"}]'::JSONB, '$[$i].x' passing id AS i RETURNING text omit quotes)
FROM generate_series(0, 3) i FROM generate_series(0, 3) i
JOIN my_films ON(id = i); JOIN my_films ON(id = i) ORDER BY 1;
-- we can use JSON_TABLE in modification queries as well -- we can use JSON_TABLE in modification queries as well