pgsql: doc: restrictions on alter database moving default tablespace

Started by Bruce Momjianalmost 12 years ago8 messagescomitters
Jump to latest
#1Bruce Momjian
bruce@momjian.us

doc: restrictions on alter database moving default tablespace

Mention tablespace must be empty and no one connected to the database.

Report by Josh Berkus

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/97d554871c3d186db831b35c0eabe6d496e4f54b

Modified Files
--------------
doc/src/sgml/ref/alter_database.sgml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

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

#2Noah Misch
noah@leadboat.com
In reply to: Bruce Momjian (#1)
Re: pgsql: doc: restrictions on alter database moving default tablespace

On Sat, Oct 18, 2014 at 02:23:46PM +0000, Bruce Momjian wrote:

doc: restrictions on alter database moving default tablespace

Mention tablespace must be empty and no one connected to the database.

The database must not contain any object explicitly assigned to its future
default tablespace, but that tablespace need not be empty. Objects of other
databases in the tablespace pose no problem.

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

#3Bruce Momjian
bruce@momjian.us
In reply to: Noah Misch (#2)
Re: pgsql: doc: restrictions on alter database moving default tablespace

On Tue, Oct 21, 2014 at 01:38:43AM -0400, Noah Misch wrote:

On Sat, Oct 18, 2014 at 02:23:46PM +0000, Bruce Momjian wrote:

doc: restrictions on alter database moving default tablespace

Mention tablespace must be empty and no one connected to the database.

The database must not contain any object explicitly assigned to its future
default tablespace, but that tablespace need not be empty. Objects of other
databases in the tablespace pose no problem.

I am back to look at this comment, and I don't understand what change is
being requested. Are you saying it is just the commit message that
isn't clear?

The new text is:

The new default tablespace for this database must be empty, and no one
can be connected to the database.

That makes the distinction that only the tablespace for the existing
database has to be empty, not the entire tablespace. Also, how would
there be an entry in the new-default per-database tablespace without it
being explicitly assigned, as that was not the previous default.

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

+ Everyone has their own god. +

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

#4Noah Misch
noah@leadboat.com
In reply to: Bruce Momjian (#3)
Re: pgsql: doc: restrictions on alter database moving default tablespace

On Fri, Dec 12, 2014 at 04:14:50PM -0500, Bruce Momjian wrote:

On Tue, Oct 21, 2014 at 01:38:43AM -0400, Noah Misch wrote:

On Sat, Oct 18, 2014 at 02:23:46PM +0000, Bruce Momjian wrote:

doc: restrictions on alter database moving default tablespace

Mention tablespace must be empty and no one connected to the database.

The database must not contain any object explicitly assigned to its future
default tablespace, but that tablespace need not be empty. Objects of other
databases in the tablespace pose no problem.

I am back to look at this comment, and I don't understand what change is
being requested. Are you saying it is just the commit message that
isn't clear?

The new text is:

The new default tablespace for this database must be empty, and no one
can be connected to the database.

That makes the distinction that only the tablespace for the existing
database has to be empty, not the entire tablespace.

No, the commit message accurately describes the change. Your reply helps me
understand your conception of the software's behavior, but I still read your
committed documentation text differently. For "the new default tablespace for
this database" to qualify as "empty", it must contain no object from any
database. A tablespace is a cross-database, unitary object. Each tablespace
is either empty from every perspective or not empty from any perspective.
Here are a couple of alternatives for the documentation text:

The new default tablespace must not already contain any of the database's
objects, and no one can be connected to the database.

The database must not contain any object explicitly located in the new
default tablespace, and no one can be connected to the database.

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

#5David G. Johnston
david.g.johnston@gmail.com
In reply to: Noah Misch (#4)
Re: pgsql: doc: restrictions on alter database moving default tablespace

Noah Misch-2 wrote

On Fri, Dec 12, 2014 at 04:14:50PM -0500, Bruce Momjian wrote:

On Tue, Oct 21, 2014 at 01:38:43AM -0400, Noah Misch wrote:

On Sat, Oct 18, 2014 at 02:23:46PM +0000, Bruce Momjian wrote:

doc: restrictions on alter database moving default tablespace

Mention tablespace must be empty and no one connected to the

database.

The database must not contain any object explicitly assigned to its

future

default tablespace, but that tablespace need not be empty. Objects of

other

databases in the tablespace pose no problem.

I am back to look at this comment, and I don't understand what change is
being requested. Are you saying it is just the commit message that
isn't clear?

The new text is:

The new default tablespace for this database must be empty, and no one
can be connected to the database.

That makes the distinction that only the tablespace for the existing
database has to be empty, not the entire tablespace.

No, the commit message accurately describes the change. Your reply helps
me
understand your conception of the software's behavior, but I still read
your
committed documentation text differently. For "the new default tablespace
for
this database" to qualify as "empty", it must contain no object from any
database. A tablespace is a cross-database, unitary object. Each
tablespace
is either empty from every perspective or not empty from any perspective.
Here are a couple of alternatives for the documentation text:

The new default tablespace must not already contain any of the
database's
objects, and no one can be connected to the database.

The database must not contain any object explicitly located in the new
default tablespace, and no one can be connected to the database.

Drive-by here but wouldn't saying (or adding) "cluster" instead of
"database" solve the confusion?

http://www.postgresql.org/docs/9.3/static/creating-cluster.html

A link to that section may be worth considering...

David J.

--
View this message in context: http://postgresql.nabble.com/pgsql-doc-restrictions-on-alter-database-moving-default-tablespace-tp5823550p5830832.html
Sent from the PostgreSQL - committers mailing list archive at Nabble.com.

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

#6David G. Johnston
david.g.johnston@gmail.com
In reply to: Noah Misch (#4)
Re: pgsql: doc: restrictions on alter database moving default tablespace

Noah Misch-2 wrote

On Fri, Dec 12, 2014 at 04:14:50PM -0500, Bruce Momjian wrote:

On Tue, Oct 21, 2014 at 01:38:43AM -0400, Noah Misch wrote:

On Sat, Oct 18, 2014 at 02:23:46PM +0000, Bruce Momjian wrote:

doc: restrictions on alter database moving default tablespace

Mention tablespace must be empty and no one connected to the

database.

The database must not contain any object explicitly assigned to its

future

default tablespace, but that tablespace need not be empty. Objects of

other

databases in the tablespace pose no problem.

I am back to look at this comment, and I don't understand what change is
being requested. Are you saying it is just the commit message that
isn't clear?

The new text is:

The new default tablespace for this database must be empty, and no one
can be connected to the database.

That makes the distinction that only the tablespace for the existing
database has to be empty, not the entire tablespace.

No, the commit message accurately describes the change. Your reply helps
me
understand your conception of the software's behavior, but I still read
your
committed documentation text differently. For "the new default tablespace
for
this database" to qualify as "empty", it must contain no object from any
database. A tablespace is a cross-database, unitary object. Each
tablespace
is either empty from every perspective or not empty from any perspective.
Here are a couple of alternatives for the documentation text:

The new default tablespace must not already contain any of the
database's
objects, and no one can be connected to the database.

+1; though maybe...

The newly assigned default tablespace must not contain any of the specified
database's objects but otherwise need not be empty. Additionally, there
must not be anyone connected to the database.

This is a bit more verbose, and somewhat implied since newly created
databases have their default set, by definition, to one hat likely already
contains objects of other databases in the cluster, but does clarify the
specific confusion raised here. Re-reading I think the implicit version is
likely sufficiently clear though.

Side note: This implies you cannot change the default tablespace of the only
database in a cluster...probably not worth mentioning in the docs though.

David J.

--
View this message in context: http://postgresql.nabble.com/pgsql-doc-restrictions-on-alter-database-moving-default-tablespace-tp5823550p5830836.html
Sent from the PostgreSQL - committers mailing list archive at Nabble.com.

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

#7Noah Misch
noah@leadboat.com
In reply to: David G. Johnston (#6)
Re: pgsql: doc: restrictions on alter database moving default tablespace

On Mon, Dec 15, 2014 at 09:27:38PM -0700, David G Johnston wrote:

Noah Misch-2 wrote

Here are a couple of alternatives for the documentation text:

The new default tablespace must not already contain any of the
database's
objects, and no one can be connected to the database.

+1; though maybe...

The newly assigned default tablespace must not contain any of the specified
database's objects but otherwise need not be empty. Additionally, there
must not be anyone connected to the database.

This is a bit more verbose, and somewhat implied since newly created
databases have their default set, by definition, to one hat likely already
contains objects of other databases in the cluster, but does clarify the
specific confusion raised here. Re-reading I think the implicit version is
likely sufficiently clear though.

That text, too, works for me.

Side note: This implies you cannot change the default tablespace of the only
database in a cluster...probably not worth mentioning in the docs though.

Agreed.

By the way, standard practice on PostgreSQL community mailing lists is to use
"reply to all". More often than not, without that To:/Cc: directly to me, I
would never become aware of your reply.

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

#8Bruce Momjian
bruce@momjian.us
In reply to: Noah Misch (#7)
Re: pgsql: doc: restrictions on alter database moving default tablespace

On Fri, Dec 19, 2014 at 02:09:10AM -0500, Noah Misch wrote:

On Mon, Dec 15, 2014 at 09:27:38PM -0700, David G Johnston wrote:

Noah Misch-2 wrote

Here are a couple of alternatives for the documentation text:

The new default tablespace must not already contain any of the
database's
objects, and no one can be connected to the database.

+1; though maybe...

The newly assigned default tablespace must not contain any of the specified
database's objects but otherwise need not be empty. Additionally, there
must not be anyone connected to the database.

This is a bit more verbose, and somewhat implied since newly created
databases have their default set, by definition, to one hat likely already
contains objects of other databases in the cluster, but does clarify the
specific confusion raised here. Re-reading I think the implicit version is
likely sufficiently clear though.

That text, too, works for me.

I went with cleaner wording that just rearranges the text to avoid the
confusion. Attached patch applied.

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

+ Everyone has their own god. +

Attachments:

alter.difftext/x-diff; charset=us-asciiDownload+2-2