diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index bf6004f321..ee721d258e 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -10890,15 +10890,6 @@ CREATE TYPE rainbow AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'purple
-
-
- Before PostgreSQL 8.2, the containment
- operators @> and <@ were respectively
- called ~ and @. These names are still
- available, but are deprecated and will eventually be removed.
-
-
-
Geometric Functions
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h
index f28f083aca..100e6f0a09 100644
--- a/src/include/catalog/catversion.h
+++ b/src/include/catalog/catversion.h
@@ -53,6 +53,6 @@
*/
/* yyyymmddN */
-#define CATALOG_VERSION_NO 202011013
+#define CATALOG_VERSION_NO 202011031
#endif
diff --git a/src/include/catalog/pg_amop.dat b/src/include/catalog/pg_amop.dat
index 1dfb6fd373..bbe357fbc0 100644
--- a/src/include/catalog/pg_amop.dat
+++ b/src/include/catalog/pg_amop.dat
@@ -1100,10 +1100,6 @@
amopstrategy => '11', amopopr => '|>>(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '12', amopopr => '|&>(box,box)', amopmethod => 'gist' },
-{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
- amopstrategy => '13', amopopr => '~(box,box)', amopmethod => 'gist' },
-{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
- amopstrategy => '14', amopopr => '@(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'point',
amopstrategy => '15', amoppurpose => 'o', amopopr => '<->(box,point)',
amopmethod => 'gist', amopsortfamily => 'btree/float_ops' },
@@ -1175,12 +1171,6 @@
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '12',
amopopr => '|&>(polygon,polygon)', amopmethod => 'gist' },
-{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
- amoprighttype => 'polygon', amopstrategy => '13',
- amopopr => '~(polygon,polygon)', amopmethod => 'gist' },
-{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
- amoprighttype => 'polygon', amopstrategy => '14',
- amopopr => '@(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
amopopr => '<->(polygon,point)', amopmethod => 'gist',
@@ -1223,12 +1213,6 @@
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '12',
amopopr => '|&>(circle,circle)', amopmethod => 'gist' },
-{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
- amoprighttype => 'circle', amopstrategy => '13',
- amopopr => '~(circle,circle)', amopmethod => 'gist' },
-{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
- amoprighttype => 'circle', amopstrategy => '14',
- amopopr => '@(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
amopopr => '<->(circle,point)', amopmethod => 'gist',
@@ -2454,8 +2438,6 @@
amoprighttype => 'box', amopstrategy => '12', amopopr => '|&>(box,box)',
amopmethod => 'brin' },
-# we could, but choose not to, supply entries for strategies 13 and 14
-
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'point', amopstrategy => '7', amopopr => '@>(box,point)',
amopmethod => 'brin' },
diff --git a/src/include/catalog/pg_operator.dat b/src/include/catalog/pg_operator.dat
index 7cc812adda..feb8edece5 100644
--- a/src/include/catalog/pg_operator.dat
+++ b/src/include/catalog/pg_operator.dat
@@ -2777,71 +2777,6 @@
oprname => '||', oprleft => 'anynonarray', oprright => 'text',
oprresult => 'text', oprcode => 'anytextcat' },
-# obsolete names for contains/contained-by operators; remove these someday
-{ oid => '2860', descr => 'deprecated, use <@ instead',
- oprname => '@', oprleft => 'polygon', oprright => 'polygon',
- oprresult => 'bool', oprcom => '~(polygon,polygon)',
- oprcode => 'poly_contained', oprrest => 'contsel', oprjoin => 'contjoinsel' },
-{ oid => '2861', descr => 'deprecated, use @> instead',
- oprname => '~', oprleft => 'polygon', oprright => 'polygon',
- oprresult => 'bool', oprcom => '@(polygon,polygon)',
- oprcode => 'poly_contain', oprrest => 'contsel', oprjoin => 'contjoinsel' },
-{ oid => '2862', descr => 'deprecated, use <@ instead',
- oprname => '@', oprleft => 'box', oprright => 'box', oprresult => 'bool',
- oprcom => '~(box,box)', oprcode => 'box_contained', oprrest => 'contsel',
- oprjoin => 'contjoinsel' },
-{ oid => '2863', descr => 'deprecated, use @> instead',
- oprname => '~', oprleft => 'box', oprright => 'box', oprresult => 'bool',
- oprcom => '@(box,box)', oprcode => 'box_contain', oprrest => 'contsel',
- oprjoin => 'contjoinsel' },
-{ oid => '2864', descr => 'deprecated, use <@ instead',
- oprname => '@', oprleft => 'circle', oprright => 'circle',
- oprresult => 'bool', oprcom => '~(circle,circle)',
- oprcode => 'circle_contained', oprrest => 'contsel',
- oprjoin => 'contjoinsel' },
-{ oid => '2865', descr => 'deprecated, use @> instead',
- oprname => '~', oprleft => 'circle', oprright => 'circle',
- oprresult => 'bool', oprcom => '@(circle,circle)',
- oprcode => 'circle_contain', oprrest => 'contsel', oprjoin => 'contjoinsel' },
-{ oid => '2866', descr => 'deprecated, use <@ instead',
- oprname => '@', oprleft => 'point', oprright => 'box', oprresult => 'bool',
- oprcode => 'on_pb' },
-{ oid => '2867', descr => 'deprecated, use <@ instead',
- oprname => '@', oprleft => 'point', oprright => 'path', oprresult => 'bool',
- oprcom => '~(path,point)', oprcode => 'on_ppath' },
-{ oid => '2868', descr => 'deprecated, use @> instead',
- oprname => '~', oprleft => 'path', oprright => 'point', oprresult => 'bool',
- oprcom => '@(point,path)', oprcode => 'path_contain_pt' },
-{ oid => '2869', descr => 'deprecated, use <@ instead',
- oprname => '@', oprleft => 'point', oprright => 'polygon',
- oprresult => 'bool', oprcom => '~(polygon,point)',
- oprcode => 'pt_contained_poly' },
-{ oid => '2870', descr => 'deprecated, use @> instead',
- oprname => '~', oprleft => 'polygon', oprright => 'point',
- oprresult => 'bool', oprcom => '@(point,polygon)',
- oprcode => 'poly_contain_pt' },
-{ oid => '2871', descr => 'deprecated, use <@ instead',
- oprname => '@', oprleft => 'point', oprright => 'circle', oprresult => 'bool',
- oprcom => '~(circle,point)', oprcode => 'pt_contained_circle' },
-{ oid => '2872', descr => 'deprecated, use @> instead',
- oprname => '~', oprleft => 'circle', oprright => 'point', oprresult => 'bool',
- oprcom => '@(point,circle)', oprcode => 'circle_contain_pt' },
-{ oid => '2873', descr => 'deprecated, use <@ instead',
- oprname => '@', oprleft => 'point', oprright => 'line', oprresult => 'bool',
- oprcode => 'on_pl' },
-{ oid => '2874', descr => 'deprecated, use <@ instead',
- oprname => '@', oprleft => 'point', oprright => 'lseg', oprresult => 'bool',
- oprcode => 'on_ps' },
-{ oid => '2875', descr => 'deprecated, use <@ instead',
- oprname => '@', oprleft => 'lseg', oprright => 'line', oprresult => 'bool',
- oprcode => 'on_sl' },
-{ oid => '2876', descr => 'deprecated, use <@ instead',
- oprname => '@', oprleft => 'lseg', oprright => 'box', oprresult => 'bool',
- oprcode => 'on_sb' },
-{ oid => '2877', descr => 'deprecated, use @> instead',
- oprname => '~', oprleft => '_aclitem', oprright => 'aclitem',
- oprresult => 'bool', oprcode => 'aclcontains' },
-
# uuid operators
{ oid => '2972', descr => 'equal',
oprname => '=', oprcanmerge => 't', oprcanhash => 't', oprleft => 'uuid',
diff --git a/src/test/regress/expected/create_am.out b/src/test/regress/expected/create_am.out
index 730011526a..0dfb26c301 100644
--- a/src/test/regress/expected/create_am.out
+++ b/src/test/regress/expected/create_am.out
@@ -27,8 +27,6 @@ CREATE OPERATOR CLASS box_ops DEFAULT
OPERATOR 10 <<|,
OPERATOR 11 |>>,
OPERATOR 12 |&>,
- OPERATOR 13 ~,
- OPERATOR 14 @,
FUNCTION 1 gist_box_consistent(internal, box, smallint, oid, internal),
FUNCTION 2 gist_box_union(internal, internal),
-- don't need compress, decompress, or fetch functions
diff --git a/src/test/regress/expected/opr_sanity.out b/src/test/regress/expected/opr_sanity.out
index 7825a765cd..7ed29b4961 100644
--- a/src/test/regress/expected/opr_sanity.out
+++ b/src/test/regress/expected/opr_sanity.out
@@ -1163,14 +1163,13 @@ ORDER BY 1, 2;
?-| | ?-|
?| | ?|
?|| | ?||
- @ | ~
@@ | @@
@@@ | @@@
| | |
~<=~ | ~>=~
~<~ | ~>~
~= | ~=
-(30 rows)
+(29 rows)
-- Likewise for negator pairs.
SELECT DISTINCT o1.oprname AS op1, o2.oprname AS op2
@@ -1990,8 +1989,6 @@ ORDER BY 1, 2, 3;
783 | 11 | >^
783 | 11 | |>>
783 | 12 | |&>
- 783 | 13 | ~
- 783 | 14 | @
783 | 15 | <->
783 | 16 | @>
783 | 18 | =
@@ -2084,7 +2081,7 @@ ORDER BY 1, 2, 3;
4000 | 26 | >>
4000 | 27 | >>=
4000 | 28 | ^@
-(125 rows)
+(123 rows)
-- Check that all opclass search operators have selectivity estimators.
-- This is not absolutely required, but it seems a reasonable thing
diff --git a/src/test/regress/sql/create_am.sql b/src/test/regress/sql/create_am.sql
index 6dd0de4272..9a359466ce 100644
--- a/src/test/regress/sql/create_am.sql
+++ b/src/test/regress/sql/create_am.sql
@@ -28,8 +28,6 @@ CREATE OPERATOR CLASS box_ops DEFAULT
OPERATOR 10 <<|,
OPERATOR 11 |>>,
OPERATOR 12 |&>,
- OPERATOR 13 ~,
- OPERATOR 14 @,
FUNCTION 1 gist_box_consistent(internal, box, smallint, oid, internal),
FUNCTION 2 gist_box_union(internal, internal),
-- don't need compress, decompress, or fetch functions