Re: [HACKERS] domain feature - details - Mailing list pgsql-hackers

From Mattias Kregert
Subject Re: [HACKERS] domain feature - details
Date
Msg-id 34FFD2A6.65A76761@algonet.se
Whole thread Raw
In response to domain feature - details  (al dev <aldevpgsql@yahoo.com>)
Responses Re: [HACKERS] domain feature - details  (The Hermit Hacker <scrappy@hub.org>)
List pgsql-hackers
al dev wrote:
>
> Hi all:
> More details on what domains are. Domains are global
> column definitions, upon which column definitions
> can be based. A domain specifies a data type, and a
> set of column attributes and constraints. Subsequent
> table definitions can use the domain to define columns.
>
> Here is the detail for 'ALTER DOMAIN' feature. I
> pulled this off the chapter 42 at
> http://sunsite.unc.edu/LDP/HOWTO/Database-HOWTO.html>
> <alter domain statement> ::=
>          ALTER DOMAIN <domain name> <alter domain action>
>
>      <alter domain action> ::=
>            <set domain default clause>
>          | <drop domain default clause>
>          | <add domain constraint definition>
>          | <drop domain constraint definition>

What happens if I change a DOMAIN after I have created tables with
it? Does CONSTRAINT's and DEFAULTS and TYPES change for those tables,
or should it only affect tables created after the change?

Suppose I do this:
1. I create DOMAIN for "Person", and create lots of tables with
  Person columns.
2. After some weeks, I want to CONSTRAIN Person to disallow NULL
  social security number, so I change the "Person" DOMAIN.

Do I have to re-create all tables, or will the change take effect
immediately? Will some changes take effect, like default and constraint,
but not the data type? Or will changes in data type cause the tables
to be modified? Will the database lock the tables and convert them
when I type the ALTER command?

/* m */

pgsql-hackers by date:

Previous
From: Goran Thyni
Date:
Subject: Re: [HACKERS] AUTO_INCREMENT suggestion
Next
From: Mattias Kregert
Date:
Subject: Re: [HACKERS] AUTO_INCREMENT suggestion