Comment - uniqueness of relfilenode

Started by Antonin Houskaover 12 years ago8 messageshackers
Jump to latest
#1Antonin Houska
ah@cybertec.at

catalog/catalog.c:GetNewRelFileNode() and its calls indicate that the
following change makes sense:

diff --git a/src/include/storage/relfilenode.h
b/src/include/storage/relfilenode.h
index 75f897f..7190974 100644
--- a/src/include/storage/relfilenode.h
+++ b/src/include/storage/relfilenode.h
@@ -55,7 +55,7 @@ typedef enum ForkNumber
  * relNode identifies the specific relation.  relNode corresponds to
  * pg_class.relfilenode (NOT pg_class.oid, because we need to be able
  * to assign new physical files to relations in some situations).
- * Notice that relNode is only unique within a particular database.
+ * Notice that relNode is only unique within a particular tablespace.
  *
  * Note: spcNode must be GLOBALTABLESPACE_OID if and only if dbNode is
  * zero.  We support shared relations only in the "global" tablespace.

// Antonin Houska (Tony)

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#2Robert Haas
robertmhaas@gmail.com
In reply to: Antonin Houska (#1)
Re: Comment - uniqueness of relfilenode

On Thu, Nov 7, 2013 at 10:56 AM, Antonin Houska
<antonin.houska@gmail.com> wrote:

catalog/catalog.c:GetNewRelFileNode() and its calls indicate that the
following change makes sense:

diff --git a/src/include/storage/relfilenode.h
b/src/include/storage/relfilenode.h
index 75f897f..7190974 100644
--- a/src/include/storage/relfilenode.h
+++ b/src/include/storage/relfilenode.h
@@ -55,7 +55,7 @@ typedef enum ForkNumber
* relNode identifies the specific relation.  relNode corresponds to
* pg_class.relfilenode (NOT pg_class.oid, because we need to be able
* to assign new physical files to relations in some situations).
- * Notice that relNode is only unique within a particular database.
+ * Notice that relNode is only unique within a particular tablespace.
*
* Note: spcNode must be GLOBALTABLESPACE_OID if and only if dbNode is
* zero.  We support shared relations only in the "global" tablespace.

// Antonin Houska (Tony)

Technically speaking, I think it's only guaranteed to be unique with a
database-tablespace combination. In other words, the same OID can be
reused as a relfilenode if *either* of those two values differs.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Antonin Houska
ah@cybertec.at
In reply to: Robert Haas (#2)
Re: Comment - uniqueness of relfilenode

On 11/10/2013 12:57 AM, Robert Haas wrote:

On Thu, Nov 7, 2013 at 10:56 AM, Antonin Houska
<antonin.houska@gmail.com> wrote:

catalog/catalog.c:GetNewRelFileNode() and its calls indicate that the
following change makes sense:

diff --git a/src/include/storage/relfilenode.h
b/src/include/storage/relfilenode.h
index 75f897f..7190974 100644
--- a/src/include/storage/relfilenode.h
+++ b/src/include/storage/relfilenode.h
@@ -55,7 +55,7 @@ typedef enum ForkNumber
* relNode identifies the specific relation.  relNode corresponds to
* pg_class.relfilenode (NOT pg_class.oid, because we need to be able
* to assign new physical files to relations in some situations).
- * Notice that relNode is only unique within a particular database.
+ * Notice that relNode is only unique within a particular tablespace.
*
* Note: spcNode must be GLOBALTABLESPACE_OID if and only if dbNode is
* zero.  We support shared relations only in the "global" tablespace.

// Antonin Houska (Tony)

Technically speaking, I think it's only guaranteed to be unique with a
database-tablespace combination. In other words, the same OID can be
reused as a relfilenode if *either* of those two values differs.

You're right. I missed the fact that Postgres (unlike another DBMS that
I worked with) allows for tablespace to be shared across databases.

// Antonin Houska (Tony)

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#4Bruce Momjian
bruce@momjian.us
In reply to: Antonin Houska (#3)
Re: Comment - uniqueness of relfilenode

On Mon, Nov 11, 2013 at 05:48:52PM +0100, Antonin Houska wrote:

On 11/10/2013 12:57 AM, Robert Haas wrote:

On Thu, Nov 7, 2013 at 10:56 AM, Antonin Houska
<antonin.houska@gmail.com> wrote:

catalog/catalog.c:GetNewRelFileNode() and its calls indicate that the
following change makes sense:

diff --git a/src/include/storage/relfilenode.h
b/src/include/storage/relfilenode.h
index 75f897f..7190974 100644
--- a/src/include/storage/relfilenode.h
+++ b/src/include/storage/relfilenode.h
@@ -55,7 +55,7 @@ typedef enum ForkNumber
* relNode identifies the specific relation.  relNode corresponds to
* pg_class.relfilenode (NOT pg_class.oid, because we need to be able
* to assign new physical files to relations in some situations).
- * Notice that relNode is only unique within a particular database.
+ * Notice that relNode is only unique within a particular tablespace.
*
* Note: spcNode must be GLOBALTABLESPACE_OID if and only if dbNode is
* zero.  We support shared relations only in the "global" tablespace.

// Antonin Houska (Tony)

Technically speaking, I think it's only guaranteed to be unique with a
database-tablespace combination. In other words, the same OID can be
reused as a relfilenode if *either* of those two values differs.

You're right. I missed the fact that Postgres (unlike another DBMS that
I worked with) allows for tablespace to be shared across databases.

I have update the C comment:

< * Notice that relNode is only unique within a particular database.
---

* Notice that relNode is only unique within a particular tablespace.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ Everyone has their own god. +

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#5Robert Haas
robertmhaas@gmail.com
In reply to: Bruce Momjian (#4)
Re: Comment - uniqueness of relfilenode

On Wed, Mar 5, 2014 at 8:54 PM, Bruce Momjian <bruce@momjian.us> wrote:

On Mon, Nov 11, 2013 at 05:48:52PM +0100, Antonin Houska wrote:

On 11/10/2013 12:57 AM, Robert Haas wrote:

On Thu, Nov 7, 2013 at 10:56 AM, Antonin Houska
<antonin.houska@gmail.com> wrote:

catalog/catalog.c:GetNewRelFileNode() and its calls indicate that the
following change makes sense:

diff --git a/src/include/storage/relfilenode.h
b/src/include/storage/relfilenode.h
index 75f897f..7190974 100644
--- a/src/include/storage/relfilenode.h
+++ b/src/include/storage/relfilenode.h
@@ -55,7 +55,7 @@ typedef enum ForkNumber
* relNode identifies the specific relation.  relNode corresponds to
* pg_class.relfilenode (NOT pg_class.oid, because we need to be able
* to assign new physical files to relations in some situations).
- * Notice that relNode is only unique within a particular database.
+ * Notice that relNode is only unique within a particular tablespace.
*
* Note: spcNode must be GLOBALTABLESPACE_OID if and only if dbNode is
* zero.  We support shared relations only in the "global" tablespace.

// Antonin Houska (Tony)

Technically speaking, I think it's only guaranteed to be unique with a
database-tablespace combination. In other words, the same OID can be
reused as a relfilenode if *either* of those two values differs.

You're right. I missed the fact that Postgres (unlike another DBMS that
I worked with) allows for tablespace to be shared across databases.

I have update the C comment:

< * Notice that relNode is only unique within a particular database.
---

* Notice that relNode is only unique within a particular tablespace.

Yep. But the new text is no more correct than the old text. Did you
read what I wrote upthread?

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#6Antonin Houska
ah@cybertec.at
In reply to: Robert Haas (#5)
Re: Comment - uniqueness of relfilenode

On 03/06/2014 04:33 AM, Robert Haas wrote:

On Wed, Mar 5, 2014 at 8:54 PM, Bruce Momjian <bruce@momjian.us> wrote:

On Mon, Nov 11, 2013 at 05:48:52PM +0100, Antonin Houska wrote:

On 11/10/2013 12:57 AM, Robert Haas wrote:

On Thu, Nov 7, 2013 at 10:56 AM, Antonin Houska
<antonin.houska@gmail.com> wrote:

catalog/catalog.c:GetNewRelFileNode() and its calls indicate that the
following change makes sense:

diff --git a/src/include/storage/relfilenode.h
b/src/include/storage/relfilenode.h
index 75f897f..7190974 100644
--- a/src/include/storage/relfilenode.h
+++ b/src/include/storage/relfilenode.h
@@ -55,7 +55,7 @@ typedef enum ForkNumber
* relNode identifies the specific relation.  relNode corresponds to
* pg_class.relfilenode (NOT pg_class.oid, because we need to be able
* to assign new physical files to relations in some situations).
- * Notice that relNode is only unique within a particular database.
+ * Notice that relNode is only unique within a particular tablespace.
*
* Note: spcNode must be GLOBALTABLESPACE_OID if and only if dbNode is
* zero.  We support shared relations only in the "global" tablespace.

// Antonin Houska (Tony)

Technically speaking, I think it's only guaranteed to be unique with a
database-tablespace combination. In other words, the same OID can be
reused as a relfilenode if *either* of those two values differs.

You're right. I missed the fact that Postgres (unlike another DBMS that
I worked with) allows for tablespace to be shared across databases.

I have update the C comment:

< * Notice that relNode is only unique within a particular database.
---

* Notice that relNode is only unique within a particular tablespace.

Yep. But the new text is no more correct than the old text. Did you
read what I wrote upthread?

Perhaps "... unique within a particular (tablespace, database)
combination." ?

// Tony

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#7Bruce Momjian
bruce@momjian.us
In reply to: Antonin Houska (#6)
Re: Comment - uniqueness of relfilenode

On Thu, Mar 6, 2014 at 08:34:29AM +0100, Antonin Houska wrote:

You're right. I missed the fact that Postgres (unlike another DBMS that
I worked with) allows for tablespace to be shared across databases.

I have update the C comment:

< * Notice that relNode is only unique within a particular database.
---

* Notice that relNode is only unique within a particular tablespace.

Yep. But the new text is no more correct than the old text. Did you
read what I wrote upthread?

Perhaps "... unique within a particular (tablespace, database)
combination." ?

Oh, I thought people just wanted the text to be consistent with other
mentions, rather than improving it. Attached is a patch which updates
comments about the tablespace/database issue.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ Everyone has their own god. +

Attachments:

relfilenode.difftext/x-diff; charset=us-asciiDownload+11-11
#8Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#7)
Re: Comment - uniqueness of relfilenode

On Thu, Mar 6, 2014 at 09:20:39PM -0500, Bruce Momjian wrote:

On Thu, Mar 6, 2014 at 08:34:29AM +0100, Antonin Houska wrote:

You're right. I missed the fact that Postgres (unlike another DBMS that
I worked with) allows for tablespace to be shared across databases.

I have update the C comment:

< * Notice that relNode is only unique within a particular database.
---

* Notice that relNode is only unique within a particular tablespace.

Yep. But the new text is no more correct than the old text. Did you
read what I wrote upthread?

Perhaps "... unique within a particular (tablespace, database)
combination." ?

Oh, I thought people just wanted the text to be consistent with other
mentions, rather than improving it. Attached is a patch which updates
comments about the tablespace/database issue.

Applied.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ Everyone has their own god. +

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers