Re: [HACKERS] domain feature - details

From: The Hermit Hacker <scrappy(at)hub(dot)org>
To: Mattias Kregert <matti(at)algonet(dot)se>
Cc: al dev <aldevpgsql(at)yahoo(dot)com>, pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: [HACKERS] domain feature - details
Date: 1998-03-06 13:33:25
Message-ID: Pine.NEB.3.95.980306083141.26524F-100000@hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, 6 Mar 1998, Mattias Kregert wrote:

> 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?

If I'm understanding what has been said, then this will affect any
table that uses that domain...same as a 'view' that does a subselect will
change its results based on how the data changes in the subselect..

In a sense, I sort of see a DOMAIN as being similar to a trigger,
where, upon INSERT, you check the value being entered for a specific range
of values...

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas G. Lockhart 1998-03-06 14:03:40 Re: [HACKERS] AUTO_INCREMENT suggestion
Previous Message The Hermit Hacker 1998-03-06 13:31:17 Re: [HACKERS] AUTO_INCREMENT suggestion