Skip to content

Commit 177eda6

Browse files
committed
Modify query in test
1 parent c092d65 commit 177eda6

3 files changed

Lines changed: 22 additions & 15 deletions

File tree

src/test/regress/expected/limit.out

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -374,10 +374,11 @@ select sum(tenthous) as s1, sum(tenthous) + random()*0 as s2
374374
-- end_ignore
375375
create table limit_tbl(i int) distributed by (i);
376376
insert into limit_tbl select * from generate_series(1, 3) i;
377+
create function f(i int) returns int language plpgsql as $$ begin return i; end; $$;
377378
explain (verbose, costs off)
378-
select (select a + random()*0 from generate_series(1, 4) a limit 1 offset limit_tbl.i) as r from limit_tbl order by r;
379-
QUERY PLAN
380-
----------------------------------------------------------------------------------------------------------------
379+
select (select f(a) from generate_series(1, 4) a limit 1 offset limit_tbl.i) as r from limit_tbl order by r;
380+
QUERY PLAN
381+
-------------------------------------------------------------------------------------
381382
Gather Motion 3:1 (slice1; segments: 3)
382383
Output: ((SubPlan 1))
383384
Merge Key: ((SubPlan 1))
@@ -388,24 +389,25 @@ select (select a + random()*0 from generate_series(1, 4) a limit 1 offset limit_
388389
Output: (SubPlan 1)
389390
SubPlan 1
390391
-> Limit
391-
Output: (((a.a)::double precision + (random() * '0'::double precision)))
392+
Output: (f(a.a))
392393
-> Materialize
393-
Output: (((a.a)::double precision + (random() * '0'::double precision)))
394+
Output: (f(a.a))
394395
-> Broadcast Motion 1:3 (slice2; segments: 1)
395-
Output: (((a.a)::double precision + (random() * '0'::double precision)))
396+
Output: (f(a.a))
396397
-> Function Scan on pg_catalog.generate_series a
397-
Output: ((a.a)::double precision + (random() * '0'::double precision))
398+
Output: f(a.a)
398399
Function Call: generate_series(1, 4)
399400
Optimizer: Postgres-based planner
400401
Settings: optimizer = 'off'
401402
(20 rows)
402403

403-
select (select a + random()*0 from generate_series(1, 4) a limit 1 offset limit_tbl.i) as r from limit_tbl order by r;
404+
select (select f(a) from generate_series(1, 4) a limit 1 offset limit_tbl.i) as r from limit_tbl order by r;
404405
r
405406
---
406407
2
407408
3
408409
4
409410
(3 rows)
410411

412+
drop function f(int);
411413
drop table limit_tbl;

src/test/regress/expected/limit_optimizer.out

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -398,10 +398,11 @@ select sum(tenthous) as s1, sum(tenthous) + random()*0 as s2
398398
-- end_ignore
399399
create table limit_tbl(i int) distributed by (i);
400400
insert into limit_tbl select * from generate_series(1, 3) i;
401+
create function f(i int) returns int language plpgsql as $$ begin return i; end; $$;
401402
explain (verbose, costs off)
402-
select (select a + random()*0 from generate_series(1, 4) a limit 1 offset limit_tbl.i) as r from limit_tbl order by r;
403-
QUERY PLAN
404-
--------------------------------------------------------------------------------------------------------------------
403+
select (select f(a) from generate_series(1, 4) a limit 1 offset limit_tbl.i) as r from limit_tbl order by r;
404+
QUERY PLAN
405+
-----------------------------------------------------------------------
405406
Sort
406407
Output: ((SubPlan 1))
407408
Sort Key: ((SubPlan 1))
@@ -413,7 +414,7 @@ select (select a + random()*0 from generate_series(1, 4) a limit 1 offset limit_
413414
Output: limit_tbl.i
414415
SubPlan 1
415416
-> Result
416-
Output: ((generate_series.generate_series)::double precision + (random() * '0'::double precision))
417+
Output: f(generate_series.generate_series)
417418
-> Limit
418419
Output: generate_series.generate_series
419420
-> Function Scan on pg_catalog.generate_series
@@ -422,12 +423,13 @@ select (select a + random()*0 from generate_series(1, 4) a limit 1 offset limit_
422423
Optimizer: GPORCA
423424
(18 rows)
424425

425-
select (select a + random()*0 from generate_series(1, 4) a limit 1 offset limit_tbl.i) as r from limit_tbl order by r;
426+
select (select f(a) from generate_series(1, 4) a limit 1 offset limit_tbl.i) as r from limit_tbl order by r;
426427
r
427428
---
428429
2
429430
3
430431
4
431432
(3 rows)
432433

434+
drop function f(int);
433435
drop table limit_tbl;

src/test/regress/sql/limit.sql

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,12 +151,15 @@ select sum(tenthous) as s1, sum(tenthous) + random()*0 as s2
151151
-- Check the operation of the parameterized Limit in a subquery with a volatile function
152152
-- start_ignore
153153
drop table if exists limit_tbl;
154+
drop function if exists f(int);
154155
-- end_ignore
155156
create table limit_tbl(i int) distributed by (i);
156157
insert into limit_tbl select * from generate_series(1, 3) i;
158+
create function f(i int) returns int language plpgsql as $$ begin return i; end; $$;
157159

158160
explain (verbose, costs off)
159-
select (select a + random()*0 from generate_series(1, 4) a limit 1 offset limit_tbl.i) as r from limit_tbl order by r;
160-
select (select a + random()*0 from generate_series(1, 4) a limit 1 offset limit_tbl.i) as r from limit_tbl order by r;
161+
select (select f(a) from generate_series(1, 4) a limit 1 offset limit_tbl.i) as r from limit_tbl order by r;
162+
select (select f(a) from generate_series(1, 4) a limit 1 offset limit_tbl.i) as r from limit_tbl order by r;
161163

164+
drop function f(int);
162165
drop table limit_tbl;

0 commit comments

Comments
 (0)