Skip to content

Commit 44bbe12

Browse files
author
liushengsong
committed
Update answer files: view qualifier removal and upstream PG16 test changes
- Remove unnecessary table qualifiers from pg_get_viewdef output in 6 tests (matview, groupingsets, limit, rangefuncs, with, with_clause) - Sync 25 answer files with upstream PG16 test infrastructure changes: test_setup consolidation, \getenv variable replacement, md5->fipshash, pg_input_is_valid/pg_input_error_info additions, and other upstream changes
1 parent 8afa787 commit 44bbe12

31 files changed

+5458
-2589
lines changed

src/test/regress/expected/aggregates_optimizer.out

Lines changed: 788 additions & 375 deletions
Large diffs are not rendered by default.

src/test/regress/expected/bitmap_index_optimizer.out

Lines changed: 166 additions & 146 deletions
Large diffs are not rendered by default.

src/test/regress/expected/box_optimizer.out

Lines changed: 99 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
--
1717
-- boxes are specified by two points, given by four floats x1,y1,x2,y2
1818
CREATE TABLE BOX_TBL (f1 box);
19+
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause, and no column type is suitable for a distribution key. Creating a NULL policy entry.
1920
INSERT INTO BOX_TBL (f1) VALUES ('(2.0,2.0,0.0,0.0)');
2021
INSERT INTO BOX_TBL (f1) VALUES ('(1.0,1.0,3.0,3.0)');
2122
INSERT INTO BOX_TBL (f1) VALUES ('((-8, 2), (-2, -10))');
@@ -47,22 +48,22 @@ LINE 1: INSERT INTO BOX_TBL (f1) VALUES ('asdfasdf(ad');
4748
SELECT * FROM BOX_TBL;
4849
f1
4950
---------------------
50-
(2,2),(0,0)
51-
(3,3),(1,1)
5251
(-2,2),(-8,-10)
5352
(2.5,3.5),(2.5,2.5)
5453
(3,3),(3,3)
54+
(2,2),(0,0)
55+
(3,3),(1,1)
5556
(5 rows)
5657

5758
SELECT b.*, area(b.f1) as barea
5859
FROM BOX_TBL b;
5960
f1 | barea
6061
---------------------+-------
61-
(2,2),(0,0) | 4
62-
(3,3),(1,1) | 4
6362
(-2,2),(-8,-10) | 72
6463
(2.5,3.5),(2.5,2.5) | 0
6564
(3,3),(3,3) | 0
65+
(2,2),(0,0) | 4
66+
(3,3),(1,1) | 4
6667
(5 rows)
6768

6869
-- overlap
@@ -241,6 +242,7 @@ SELECT height(f1), width(f1) FROM BOX_TBL;
241242
-- Test the SP-GiST index
242243
--
243244
CREATE TEMPORARY TABLE box_temp (f1 box);
245+
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause, and no column type is suitable for a distribution key. Creating a NULL policy entry.
244246
INSERT INTO box_temp
245247
SELECT box(point(i, i), point(i * 2, i * 2))
246248
FROM generate_series(1, 50) AS i;
@@ -257,34 +259,35 @@ SET enable_seqscan = false;
257259
SELECT * FROM box_temp WHERE f1 << '(10,20),(30,40)';
258260
f1
259261
----------------------------
260-
(0,Infinity),(0,100)
261-
(2,2),(1,1)
262-
(4,4),(2,2)
262+
(6,6),(3,3)
263263
(8,8),(4,4)
264264
(0,100),(0,0)
265+
(0,Infinity),(0,100)
265266
(0,Infinity),(-Infinity,0)
266-
(6,6),(3,3)
267+
(2,2),(1,1)
268+
(4,4),(2,2)
267269
(7 rows)
268270

269271
EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 << '(10,20),(30,40)';
270-
QUERY PLAN
271-
------------------------------------------------------
272+
QUERY PLAN
273+
------------------------------------------------
272274
Gather Motion 3:1 (slice1; segments: 3)
273275
-> Seq Scan on box_temp
274276
Filter: (f1 << '(30,40),(10,20)'::box)
277+
Optimizer: GPORCA
275278
(4 rows)
276279

277280
SELECT * FROM box_temp WHERE f1 &< '(10,4.333334),(5,100)';
278281
f1
279282
----------------------------
280283
(6,6),(3,3)
284+
(8,8),(4,4)
281285
(10,10),(5,5)
286+
(0,100),(0,0)
282287
(0,Infinity),(0,100)
288+
(0,Infinity),(-Infinity,0)
283289
(2,2),(1,1)
284290
(4,4),(2,2)
285-
(8,8),(4,4)
286-
(0,100),(0,0)
287-
(0,Infinity),(-Infinity,0)
288291
(8 rows)
289292

290293
EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 &< '(10,4.333334),(5,100)';
@@ -293,83 +296,87 @@ EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 &< '(10,4.333334),(5,100)';
293296
Gather Motion 3:1 (slice1; segments: 3)
294297
-> Seq Scan on box_temp
295298
Filter: (f1 &< '(10,100),(5,4.333334)'::box)
299+
Optimizer: GPORCA
296300
(4 rows)
297301

298302
SELECT * FROM box_temp WHERE f1 && '(15,20),(25,30)';
299303
f1
300304
-------------------------------------------
301-
(24,24),(12,12)
302-
(28,28),(14,14)
303-
(34,34),(17,17)
304-
(40,40),(20,20)
305-
(50,50),(25,25)
306-
(20,20),(10,10)
305+
(22,22),(11,11)
307306
(26,26),(13,13)
308-
(30,30),(15,15)
309307
(32,32),(16,16)
310-
(36,36),(18,18)
311-
(42,42),(21,21)
312-
(22,22),(11,11)
313-
(38,38),(19,19)
308+
(34,34),(17,17)
309+
(20,20),(10,10)
310+
(24,24),(12,12)
314311
(44,44),(22,22)
315312
(46,46),(23,23)
316313
(48,48),(24,24)
314+
(50,50),(25,25)
315+
(28,28),(14,14)
316+
(30,30),(15,15)
317+
(36,36),(18,18)
318+
(38,38),(19,19)
319+
(40,40),(20,20)
320+
(42,42),(21,21)
317321
(Infinity,Infinity),(-Infinity,-Infinity)
318322
(17 rows)
319323

320324
EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 && '(15,20),(25,30)';
321-
QUERY PLAN
322-
------------------------------------------------------
325+
QUERY PLAN
326+
------------------------------------------------
323327
Gather Motion 3:1 (slice1; segments: 3)
324328
-> Seq Scan on box_temp
325329
Filter: (f1 && '(25,30),(15,20)'::box)
330+
Optimizer: GPORCA
326331
(4 rows)
327332

328333
SELECT * FROM box_temp WHERE f1 &> '(40,30),(45,50)';
329334
f1
330335
-------------------
331-
(80,80),(40,40)
332-
(82,82),(41,41)
333336
(86,86),(43,43)
334337
(90,90),(45,45)
335-
(92,92),(46,46)
336-
(94,94),(47,47)
337338
(96,96),(48,48)
339+
(98,98),(49,49)
338340
(88,88),(44,44)
341+
(94,94),(47,47)
339342
(100,100),(50,50)
343+
(80,80),(40,40)
344+
(82,82),(41,41)
340345
(84,84),(42,42)
341-
(98,98),(49,49)
346+
(92,92),(46,46)
342347
(11 rows)
343348

344349
EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 &> '(40,30),(45,50)';
345-
QUERY PLAN
346-
------------------------------------------------------
350+
QUERY PLAN
351+
------------------------------------------------
347352
Gather Motion 3:1 (slice1; segments: 3)
348353
-> Seq Scan on box_temp
349354
Filter: (f1 &> '(45,50),(40,30)'::box)
355+
Optimizer: GPORCA
350356
(4 rows)
351357

352358
SELECT * FROM box_temp WHERE f1 >> '(30,40),(40,30)';
353359
f1
354360
-------------------
361+
(86,86),(43,43)
362+
(90,90),(45,45)
363+
(96,96),(48,48)
364+
(98,98),(49,49)
355365
(88,88),(44,44)
366+
(94,94),(47,47)
356367
(100,100),(50,50)
357-
(84,84),(42,42)
358-
(98,98),(49,49)
359368
(82,82),(41,41)
360-
(86,86),(43,43)
361-
(90,90),(45,45)
369+
(84,84),(42,42)
362370
(92,92),(46,46)
363-
(94,94),(47,47)
364-
(96,96),(48,48)
365371
(10 rows)
366372

367373
EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 >> '(30,40),(40,30)';
368-
QUERY PLAN
369-
------------------------------------------------------
374+
QUERY PLAN
375+
------------------------------------------------
370376
Gather Motion 3:1 (slice1; segments: 3)
371377
-> Seq Scan on box_temp
372378
Filter: (f1 >> '(40,40),(30,30)'::box)
379+
Optimizer: GPORCA
373380
(4 rows)
374381

375382
SELECT * FROM box_temp WHERE f1 <<| '(10,4.33334),(5,100)';
@@ -386,6 +393,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 <<| '(10,4.33334),(5,100)';
386393
Gather Motion 3:1 (slice1; segments: 3)
387394
-> Seq Scan on box_temp
388395
Filter: (f1 <<| '(10,100),(5,4.33334)'::box)
396+
Optimizer: GPORCA
389397
(4 rows)
390398

391399
SELECT * FROM box_temp WHERE f1 &<| '(10,4.3333334),(5,1)';
@@ -402,6 +410,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 &<| '(10,4.3333334),(5,1)';
402410
Gather Motion 3:1 (slice1; segments: 3)
403411
-> Seq Scan on box_temp
404412
Filter: (f1 &<| '(10,4.3333334),(5,1)'::box)
413+
Optimizer: GPORCA
405414
(4 rows)
406415

407416
SELECT * FROM box_temp WHERE f1 |&> '(49.99,49.99),(49.99,49.99)';
@@ -417,47 +426,50 @@ EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 |&> '(49.99,49.99),(49.99,49
417426
Gather Motion 3:1 (slice1; segments: 3)
418427
-> Seq Scan on box_temp
419428
Filter: (f1 |&> '(49.99,49.99),(49.99,49.99)'::box)
429+
Optimizer: GPORCA
420430
(4 rows)
421431

422432
SELECT * FROM box_temp WHERE f1 |>> '(37,38),(39,40)';
423433
f1
424434
----------------------
435+
(86,86),(43,43)
436+
(90,90),(45,45)
437+
(96,96),(48,48)
438+
(98,98),(49,49)
425439
(88,88),(44,44)
440+
(94,94),(47,47)
426441
(100,100),(50,50)
427442
(0,Infinity),(0,100)
428-
(84,84),(42,42)
429-
(98,98),(49,49)
430443
(82,82),(41,41)
431-
(86,86),(43,43)
432-
(90,90),(45,45)
444+
(84,84),(42,42)
433445
(92,92),(46,46)
434-
(94,94),(47,47)
435-
(96,96),(48,48)
436446
(11 rows)
437447

438448
EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 |>> '(37,38),(39,40)';
439-
QUERY PLAN
440-
------------------------------------------------------
449+
QUERY PLAN
450+
-------------------------------------------------
441451
Gather Motion 3:1 (slice1; segments: 3)
442452
-> Seq Scan on box_temp
443453
Filter: (f1 |>> '(39,40),(37,38)'::box)
454+
Optimizer: GPORCA
444455
(4 rows)
445456

446457
SELECT * FROM box_temp WHERE f1 @> '(10,11),(15,16)';
447458
f1
448459
-------------------------------------------
460+
(18,18),(9,9)
449461
(16,16),(8,8)
450-
(20,20),(10,10)
451462
(Infinity,Infinity),(-Infinity,-Infinity)
452-
(18,18),(9,9)
463+
(20,20),(10,10)
453464
(4 rows)
454465

455466
EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 @> '(10,11),(15,15)';
456-
QUERY PLAN
457-
------------------------------------------------------
467+
QUERY PLAN
468+
------------------------------------------------
458469
Gather Motion 3:1 (slice1; segments: 3)
459470
-> Seq Scan on box_temp
460471
Filter: (f1 @> '(15,15),(10,11)'::box)
472+
Optimizer: GPORCA
461473
(4 rows)
462474

463475
SELECT * FROM box_temp WHERE f1 <@ '(10,15),(30,35)';
@@ -467,11 +479,12 @@ SELECT * FROM box_temp WHERE f1 <@ '(10,15),(30,35)';
467479
(1 row)
468480

469481
EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 <@ '(10,15),(30,35)';
470-
QUERY PLAN
471-
------------------------------------------------------
482+
QUERY PLAN
483+
------------------------------------------------
472484
Gather Motion 3:1 (slice1; segments: 3)
473485
-> Seq Scan on box_temp
474486
Filter: (f1 <@ '(30,35),(10,15)'::box)
487+
Optimizer: GPORCA
475488
(4 rows)
476489

477490
SELECT * FROM box_temp WHERE f1 ~= '(20,20),(40,40)';
@@ -481,11 +494,12 @@ SELECT * FROM box_temp WHERE f1 ~= '(20,20),(40,40)';
481494
(1 row)
482495

483496
EXPLAIN (COSTS OFF) SELECT * FROM box_temp WHERE f1 ~= '(20,20),(40,40)';
484-
QUERY PLAN
485-
------------------------------------------------------
497+
QUERY PLAN
498+
------------------------------------------------
486499
Gather Motion 3:1 (slice1; segments: 3)
487500
-> Seq Scan on box_temp
488501
Filter: (f1 ~= '(40,40),(20,20)'::box)
502+
Optimizer: GPORCA
489503
(4 rows)
490504

491505
RESET enable_seqscan;
@@ -495,6 +509,7 @@ DROP INDEX box_spgist;
495509
--
496510
CREATE TABLE quad_box_tbl (id int, b box);
497511
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'id' as the Apache Cloudberry data distribution key for this table.
512+
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
498513
INSERT INTO quad_box_tbl
499514
SELECT (x - 1) * 100 + y, box(point(x * 10, y * 10), point(x * 10 + 5, y * 10 + 5))
500515
FROM generate_series(1, 100) x,
@@ -608,11 +623,6 @@ SELECT count(*) FROM quad_box_tbl WHERE b ~= box '((200,300),(205,305))';
608623
-- test ORDER BY distance
609624
SET enable_indexscan = ON;
610625
SET enable_bitmapscan = OFF;
611-
-- start_ignore
612-
-- GPDB_13_MERGE_FIXME:
613-
-- The ORCA sorts the result of seqscan, while the postgres planner uses index scan
614-
-- to keep order. Is it better to also use index scan for ORCA?
615-
-- end_ignore
616626
EXPLAIN (COSTS OFF)
617627
SELECT rank() OVER (ORDER BY b <-> point '123,456') n, b <-> point '123,456' dist, id
618628
FROM quad_box_tbl;
@@ -626,7 +636,7 @@ FROM quad_box_tbl;
626636
-> Sort
627637
Sort Key: ((b <-> '(123,456)'::point))
628638
-> Seq Scan on quad_box_tbl
629-
Optimizer: Pivotal Optimizer (GPORCA)
639+
Optimizer: GPORCA
630640
(9 rows)
631641

632642
CREATE TEMP TABLE quad_box_tbl_ord_idx1 AS
@@ -656,7 +666,7 @@ FROM quad_box_tbl WHERE b <@ box '((200,300),(500,600))';
656666
Sort Key: ((b <-> '(123,456)'::point))
657667
-> Seq Scan on quad_box_tbl
658668
Filter: (b <@ '(500,600),(200,300)'::box)
659-
Optimizer: Pivotal Optimizer (GPORCA)
669+
Optimizer: GPORCA
660670
(10 rows)
661671

662672
CREATE TEMP TABLE quad_box_tbl_ord_idx2 AS
@@ -675,3 +685,28 @@ WHERE seq.id IS NULL OR idx.id IS NULL;
675685
RESET enable_seqscan;
676686
RESET enable_indexscan;
677687
RESET enable_bitmapscan;
688+
-- test non-error-throwing API for some core types
689+
SELECT pg_input_is_valid('200', 'box');
690+
pg_input_is_valid
691+
-------------------
692+
f
693+
(1 row)
694+
695+
SELECT * FROM pg_input_error_info('200', 'box');
696+
message | detail | hint | sql_error_code
697+
------------------------------------------+--------+------+----------------
698+
invalid input syntax for type box: "200" | | | 22P02
699+
(1 row)
700+
701+
SELECT pg_input_is_valid('((200,300),(500, xyz))', 'box');
702+
pg_input_is_valid
703+
-------------------
704+
f
705+
(1 row)
706+
707+
SELECT * FROM pg_input_error_info('((200,300),(500, xyz))', 'box');
708+
message | detail | hint | sql_error_code
709+
-------------------------------------------------------------+--------+------+----------------
710+
invalid input syntax for type box: "((200,300),(500, xyz))" | | | 22P02
711+
(1 row)
712+

0 commit comments

Comments
 (0)