@@ -437,25 +437,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
437
437
-- Look for range types that do not have a pg_range entry
438
438
SELECT t1.oid, t1.typname
439
439
FROM pg_type as t1
440
- @@ -113,10 +479,13 @@
441
- -- Text conversion routines must be provided.
442
- SELECT t1.oid, t1.typname
443
- FROM pg_type as t1
444
- -WHERE (t1.typinput = 0 OR t1.typoutput = 0);
445
- - oid | typname
446
- ------+---------
447
- -(0 rows)
448
- +WHERE (t1.typinput = 0 OR t1.typoutput = 0)
449
- +ORDER BY t1.oid;
450
- + oid | typname
451
- +------+---------
452
- + 2276 | any
453
- + 2279 | trigger
454
- +(2 rows)
455
-
456
- -- Check for bogus typinput routines
457
- SELECT t1.oid, t1.typname, p1.oid, p1.proname
458
- @@ -128,10 +497,7 @@
440
+ @@ -128,10 +494,7 @@
459
441
(p1.pronargs = 3 AND p1.proargtypes[0] = 'cstring'::regtype AND
460
442
p1.proargtypes[1] = 'oid'::regtype AND
461
443
p1.proargtypes[2] = 'int4'::regtype));
@@ -467,7 +449,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
467
449
-- As of 8.0, this check finds refcursor, which is borrowing
468
450
-- other types' I/O routines
469
451
SELECT t1.oid, t1.typname, p1.oid, p1.proname
470
- @@ -140,10 +506 ,9 @@
452
+ @@ -140,10 +503 ,9 @@
471
453
(t1.typelem != 0 AND t1.typlen < 0) AND NOT
472
454
(p1.prorettype = t1.oid AND NOT p1.proretset)
473
455
ORDER BY 1;
@@ -481,7 +463,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
481
463
482
464
-- Varlena array types will point to array_in
483
465
-- Exception as of 8.1: int2vector and oidvector have their own I/O routines
484
- @@ -153,10 +518 ,10 @@
466
+ @@ -153,10 +515 ,10 @@
485
467
(t1.typelem != 0 AND t1.typlen < 0) AND NOT
486
468
(p1.oid = 'array_in'::regproc)
487
469
ORDER BY 1;
@@ -496,7 +478,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
496
478
(2 rows)
497
479
498
480
-- typinput routines should not be volatile
499
- @@ -172,14 +537 ,11 @@
481
+ @@ -172,14 +534 ,11 @@
500
482
FROM pg_type AS t1
501
483
WHERE t1.typtype not in ('b', 'p')
502
484
ORDER BY 1;
@@ -514,7 +496,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
514
496
515
497
-- Check for bogus typoutput routines
516
498
-- As of 8.0, this check finds refcursor, which is borrowing
517
- @@ -192,19 +554 ,15 @@
499
+ @@ -192,19 +551 ,15 @@
518
500
(p1.oid = 'array_out'::regproc AND
519
501
t1.typelem != 0 AND t1.typlen = -1)))
520
502
ORDER BY 1;
@@ -538,7 +520,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
538
520
-- typoutput routines should not be volatile
539
521
SELECT t1.oid, t1.typname, p1.oid, p1.proname
540
522
FROM pg_type AS t1, pg_proc AS p1
541
- @@ -218,13 +576 ,11 @@
523
+ @@ -218,13 +573 ,11 @@
542
524
FROM pg_type AS t1
543
525
WHERE t1.typtype not in ('b', 'd', 'p')
544
526
ORDER BY 1;
@@ -555,7 +537,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
555
537
556
538
-- Domains should have same typoutput as their base types
557
539
SELECT t1.oid, t1.typname, t2.oid, t2.typname
558
- @@ -244,10 +600 ,7 @@
540
+ @@ -244,10 +597 ,7 @@
559
541
(p1.pronargs = 3 AND p1.proargtypes[0] = 'internal'::regtype AND
560
542
p1.proargtypes[1] = 'oid'::regtype AND
561
543
p1.proargtypes[2] = 'int4'::regtype));
@@ -567,7 +549,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
567
549
-- As of 7.4, this check finds refcursor, which is borrowing
568
550
-- other types' I/O routines
569
551
SELECT t1.oid, t1.typname, p1.oid, p1.proname
570
- @@ -256,10 +609 ,9 @@
552
+ @@ -256,10 +606 ,9 @@
571
553
(t1.typelem != 0 AND t1.typlen < 0) AND NOT
572
554
(p1.prorettype = t1.oid AND NOT p1.proretset)
573
555
ORDER BY 1;
@@ -581,7 +563,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
581
563
582
564
-- Varlena array types will point to array_recv
583
565
-- Exception as of 8.1: int2vector and oidvector have their own I/O routines
584
- @@ -271,8 +623 ,8 @@
566
+ @@ -271,8 +620 ,8 @@
585
567
ORDER BY 1;
586
568
oid | typname | oid | proname
587
569
-----+------------+------+----------------
@@ -592,7 +574,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
592
574
(2 rows)
593
575
594
576
-- Suspicious if typreceive doesn't take same number of args as typinput
595
- @@ -297,14 +649 ,11 @@
577
+ @@ -297,14 +646 ,11 @@
596
578
FROM pg_type AS t1
597
579
WHERE t1.typtype not in ('b', 'p')
598
580
ORDER BY 1;
@@ -610,7 +592,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
610
592
611
593
-- Check for bogus typsend routines
612
594
-- As of 7.4, this check finds refcursor, which is borrowing
613
- @@ -317,10 +666 ,9 @@
595
+ @@ -317,10 +663 ,9 @@
614
596
(p1.oid = 'array_send'::regproc AND
615
597
t1.typelem != 0 AND t1.typlen = -1)))
616
598
ORDER BY 1;
@@ -624,7 +606,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
624
606
625
607
SELECT t1.oid, t1.typname, p1.oid, p1.proname
626
608
FROM pg_type AS t1, pg_proc AS p1
627
- @@ -343,13 +691 ,11 @@
609
+ @@ -343,13 +688 ,11 @@
628
610
FROM pg_type AS t1
629
611
WHERE t1.typtype not in ('b', 'd', 'p')
630
612
ORDER BY 1;
@@ -641,7 +623,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
641
623
642
624
-- Domains should have same typsend as their base types
643
625
SELECT t1.oid, t1.typname, t2.oid, t2.typname
644
- @@ -366,10 +712 ,7 @@
626
+ @@ -366,10 +709 ,7 @@
645
627
(p1.pronargs = 1 AND
646
628
p1.proargtypes[0] = 'cstring[]'::regtype AND
647
629
p1.prorettype = 'int4'::regtype AND NOT p1.proretset);
@@ -653,7 +635,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
653
635
-- typmodin routines should not be volatile
654
636
SELECT t1.oid, t1.typname, p1.oid, p1.proname
655
637
FROM pg_type AS t1, pg_proc AS p1
656
- @@ -385,10 +728 ,7 @@
638
+ @@ -385,10 +725 ,7 @@
657
639
(p1.pronargs = 1 AND
658
640
p1.proargtypes[0] = 'int4'::regtype AND
659
641
p1.prorettype = 'cstring'::regtype AND NOT p1.proretset);
@@ -665,7 +647,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
665
647
-- typmodout routines should not be volatile
666
648
SELECT t1.oid, t1.typname, p1.oid, p1.proname
667
649
FROM pg_type AS t1, pg_proc AS p1
668
- @@ -409,7 +749 ,8 @@
650
+ @@ -409,7 +746 ,8 @@
669
651
-- Array types should have same typdelim as their element types
670
652
SELECT t1.oid, t1.typname, t2.oid, t2.typname
671
653
FROM pg_type AS t1, pg_type AS t2
@@ -675,7 +657,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
675
657
oid | typname | oid | typname
676
658
-----+---------+-----+---------
677
659
(0 rows)
678
- @@ -428,29 +769 ,20 @@
660
+ @@ -428,29 +766 ,20 @@
679
661
SELECT t1.oid, t1.typname, t1.typelem
680
662
FROM pg_type AS t1
681
663
WHERE t1.typelem != 0 AND t1.typsubscript = 0;
@@ -708,7 +690,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
708
690
-- Check for bogus typanalyze routines
709
691
SELECT t1.oid, t1.typname, p1.oid, p1.proname
710
692
FROM pg_type AS t1, pg_proc AS p1
711
- @@ -458,10 +790 ,7 @@
693
+ @@ -458,10 +787 ,7 @@
712
694
(p1.pronargs = 1 AND
713
695
p1.proargtypes[0] = 'internal'::regtype AND
714
696
p1.prorettype = 'bool'::regtype AND NOT p1.proretset);
@@ -720,7 +702,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
720
702
-- there does not seem to be a reason to care about volatility of typanalyze
721
703
-- domains inherit their base type's typanalyze
722
704
SELECT d.oid, d.typname, d.typanalyze, t.oid, t.typname, t.typanalyze
723
- @@ -477,10 +806 ,7 @@
705
+ @@ -477,10 +803 ,7 @@
724
706
FROM pg_type t LEFT JOIN pg_range r on t.oid = r.rngtypid
725
707
WHERE t.typbasetype = 0 AND
726
708
(t.typanalyze = 'range_typanalyze'::regproc) != (r.rngtypid IS NOT NULL);
@@ -732,7 +714,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
732
714
-- array_typanalyze should be used for all and only array types
733
715
-- (but exclude domains, which we checked above)
734
716
-- As of 9.2 this finds int2vector and oidvector, which are weird anyway
735
- @@ -490,12 +816 ,7 @@
717
+ @@ -490,12 +813 ,7 @@
736
718
(t.typanalyze = 'array_typanalyze'::regproc) !=
737
719
(t.typsubscript = 'array_subscript_handler'::regproc)
738
720
ORDER BY 1;
@@ -746,7 +728,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
746
728
-- **************** pg_class ****************
747
729
-- Look for illegal values in pg_class fields
748
730
SELECT c1.oid, c1.relname
749
- @@ -535,14 +856 ,10 @@
731
+ @@ -535,14 +853 ,10 @@
750
732
(0 rows)
751
733
752
734
-- Tables, matviews etc should have AMs of type 't'
@@ -765,7 +747,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
765
747
-- **************** pg_attribute ****************
766
748
-- Look for illegal values in pg_attribute fields
767
749
SELECT a1.attrelid, a1.attname
768
- @@ -555,22 +872 ,46 @@
750
+ @@ -555,22 +869 ,46 @@
769
751
(0 rows)
770
752
771
753
-- Cross-check attnum against parent relation
@@ -822,7 +804,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
822
804
823
805
-- Cross-check against pg_type entry
824
806
-- NOTE: we allow attstorage to be 'plain' even when typstorage is not;
825
- @@ -613,10 +954 ,7 @@
807
+ @@ -613,10 +951 ,7 @@
826
808
EXISTS(select 1 from pg_catalog.pg_type where
827
809
oid = r.rngsubtype and typelem != 0 and
828
810
typsubscript = 'array_subscript_handler'::regproc)));
@@ -834,7 +816,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
834
816
-- canonical function, if any, had better match the range type
835
817
SELECT r.rngtypid, r.rngsubtype, p.proname
836
818
FROM pg_range r JOIN pg_proc p ON p.oid = r.rngcanonical
837
- @@ -639,10 +977 ,7 @@
819
+ @@ -639,10 +974 ,7 @@
838
820
SELECT r.rngtypid, r.rngsubtype, r.rngmultitypid
839
821
FROM pg_range r
840
822
WHERE r.rngmultitypid IS NULL OR r.rngmultitypid = 0;
@@ -846,7 +828,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
846
828
-- Create a table that holds all the known in-core data types and leave it
847
829
-- around so as pg_upgrade is able to test their binary compatibility.
848
830
CREATE TABLE tab_core_types AS SELECT
849
- @@ -709,6 +1044 ,13 @@
831
+ @@ -709,6 +1041 ,13 @@
850
832
'{(2020-01-02 03:04:05, 2021-02-03 06:07:08)}'::tsmultirange,
851
833
'(2020-01-02 03:04:05, 2021-02-03 06:07:08)'::tstzrange,
852
834
'{(2020-01-02 03:04:05, 2021-02-03 06:07:08)}'::tstzmultirange;
@@ -860,7 +842,7 @@ diff -U3 --label=/mnt/data1/postgres/src/test/regress/expected/type_sanity.out -
860
842
-- Sanity check on the previous table, checking that all core types are
861
843
-- included in this table.
862
844
SELECT oid, typname, typtype, typelem, typarray
863
- @@ -736,7 +1078 ,4 @@
845
+ @@ -736,7 +1075 ,4 @@
864
846
WHERE a.atttypid=t.oid AND
865
847
a.attnum > 0 AND
866
848
a.attrelid='tab_core_types'::regclass);
0 commit comments