pgsql: Remove deprecated abstime, reltime, tinterval datatypes.

Started by Andres Freundover 7 years ago3 messagescomitters
Jump to latest
#1Andres Freund
andres@anarazel.de

Remove deprecated abstime, reltime, tinterval datatypes.

These types have been deprecated for a *long* time.

Catversion bump, for obvious reasons.

Author: Andres Freund
Discussion:
/messages/by-id/20181009192237.34wjp3nmw7oynmmr@alap3.anarazel.de
/messages/by-id/20171213080506.cwjkpcz3bkk6yz2u@alap3.anarazel.de
/messages/by-id/25615.1513115237@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/cda6a8d01d391eab45c4b3e0043a1b2b31072f5f

Modified Files
--------------
doc/src/sgml/brin.sgml | 22 -
doc/src/sgml/catalogs.sgml | 4 +-
doc/src/sgml/datatype.sgml | 8 -
doc/src/sgml/xfunc.sgml | 20 -
src/backend/access/hash/hashvalidate.c | 1 -
src/backend/catalog/system_views.sql | 2 +-
src/backend/utils/adt/Makefile | 2 +-
src/backend/utils/adt/date.c | 50 -
src/backend/utils/adt/formatting.c | 1 -
src/backend/utils/adt/nabstime.c | 1541 ----------------------------
src/backend/utils/adt/selfuncs.c | 17 -
src/bin/pg_dump/pg_dumpall.c | 2 +-
src/include/catalog/catversion.h | 2 +-
src/include/catalog/pg_aggregate.dat | 6 -
src/include/catalog/pg_amop.dat | 98 --
src/include/catalog/pg_amproc.dat | 45 -
src/include/catalog/pg_cast.dat | 26 -
src/include/catalog/pg_opclass.dat | 16 -
src/include/catalog/pg_operator.dat | 141 ---
src/include/catalog/pg_opfamily.dat | 14 -
src/include/catalog/pg_proc.dat | 198 ----
src/include/catalog/pg_type.dat | 15 -
src/include/utils/datetime.h | 2 +-
src/include/utils/nabstime.h | 103 --
src/interfaces/ecpg/ecpglib/execute.c | 6 -
src/test/regress/expected/abstime.out | 136 ---
src/test/regress/expected/alter_table.out | 30 +-
src/test/regress/expected/horology.out | 210 ----
src/test/regress/expected/opr_sanity.out | 34 +-
src/test/regress/expected/reltime.out | 109 --
src/test/regress/expected/rules.out | 2 +-
src/test/regress/expected/sanity_check.out | 3 -
src/test/regress/expected/tinterval.out | 172 ----
src/test/regress/parallel_schedule | 4 +-
src/test/regress/serial_schedule | 3 -
src/test/regress/sql/abstime.sql | 67 --
src/test/regress/sql/alter_table.sql | 24 +-
src/test/regress/sql/horology.sql | 62 --
src/test/regress/sql/opr_sanity.sql | 2 -
src/test/regress/sql/reltime.sql | 50 -
src/test/regress/sql/tinterval.sql | 97 --
41 files changed, 29 insertions(+), 3318 deletions(-)

#2Andrew Dunstan
andrew@dunslane.net
In reply to: Andres Freund (#1)
Re: pgsql: Remove deprecated abstime, reltime, tinterval datatypes.

On 10/11/2018 03:02 PM, Andres Freund wrote:

Remove deprecated abstime, reltime, tinterval datatypes.

These types have been deprecated for a *long* time.

This has broken pg_upgrade from previous versions:

pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 212; 1259 16891
TABLE abstime_tbl buildfarm
pg_restore: [archiver (db)] could not execute query: ERROR:  type
"abstime" does not exist
LINE 14:     "f1" "abstime"
                  ^
    Command was:
-- For binary upgrade, must preserve pg_type oid
SELECT
pg_catalog.binary_upgrade_set_next_pg_type_oid('16893'::pg_catalog.oid);

-- For binary upgrade, must preserve pg_type array oid
SELECT
pg_catalog.binary_upgrade_set_next_array_pg_type_oid('16892'::pg_catalog.oid);

-- For binary upgrade, must preserve pg_class oids
SELECT
pg_catalog.binary_upgrade_set_next_heap_pg_class_oid('16891'::pg_catalog.oid);

CREATE TABLE "public"."abstime_tbl" (
    "f1" "abstime"
);

-- For binary upgrade, set heap's relfrozenxid and relminmxid
UPDATE pg_catalog.pg_class
SET relfrozenxid = '2643', relminmxid = '1'
WHERE oid = '"public"."abstime_tbl"'::pg_catalog.regclass;

cheers

andrew

--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#3Andres Freund
andres@anarazel.de
In reply to: Andrew Dunstan (#2)
Re: pgsql: Remove deprecated abstime, reltime, tinterval datatypes.

On 2018-10-11 16:54:41 -0400, Andrew Dunstan wrote:

On 10/11/2018 03:02 PM, Andres Freund wrote:

Remove deprecated abstime, reltime, tinterval datatypes.

These types have been deprecated for a *long* time.

This has broken pg_upgrade from previous versions:

pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 212; 1259 16891
TABLE abstime_tbl buildfarm
pg_restore: [archiver (db)] could not execute query: ERROR:� type
"abstime" does not exist
LINE 14:���� "f1" "abstime"
����������������� ^
��� Command was:
-- For binary upgrade, must preserve pg_type oid
SELECT
pg_catalog.binary_upgrade_set_next_pg_type_oid('16893'::pg_catalog.oid);

I'm not sure I see the problem you're seeing here? You've an abstime
column. That type has been removed. So you get an error? Or is your
concern solely that it affects automated testing?

Greetings,

Andres Freund