Why is specifying oids = false multiple times in create table is silently ignored?

From: Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Why is specifying oids = false multiple times in create table is silently ignored?
Date: 2021-04-07 10:30:46
Message-ID: CALj2ACVOD3WiinPwaV4iN=3vmbchEboYUbNux5LtQq1Qd3uoHA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

We generally throw an error when create table options are specified
more than once, see below:
postgres=# create table t1(a1 int) with (fillfactor = 10, fillfactor = 15);
ERROR: parameter "fillfactor" specified more than once

Although "with oids" support is removed by the commit 578b229718 and
we do still support with (oids = false) as a no-op which may be for
backward compatibility. But, why do we need to allow specifying oids =
false multiple times(see below)? Shouldn't we throw an error for
consistency with other options?
postgres=# create table t1(a1 int) with (oids = false, oids = false,
oids = false);
CREATE TABLE

And also, the commit 578b229718 talks about removing "with (oids =
false)" someday. Is it the time now to remove that and error out with
"unrecognized parameter "oids""?
/*
* This is not a great place for this test, but there's no other
* convenient place to filter the option out. As WITH (oids =
* false) will be removed someday, this seems like an acceptable
* amount of ugly.
*/
postgres=# create table t1(a1 int) with (oids = 10);
ERROR: unrecognized parameter "oids"

Thoughts?

With Regards,
Bharath Rupireddy.
EnterpriseDB: http://www.enterprisedb.com

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Banck 2021-04-07 10:36:11 Re: New predefined roles- 'pg_read/write_all_data'
Previous Message Bharath Rupireddy 2021-04-07 10:25:50 CREATE SEQUENCE with RESTART option