Re: [QUESTIONS] Re: [HACKERS] Is "CREATE DOMAIN" in 6.3 ??

From: Herouth Maoz <herouth(at)oumail(dot)openu(dot)ac(dot)il>
To: pgsql-questions(at)postgreSQL(dot)org, pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: [QUESTIONS] Re: [HACKERS] Is "CREATE DOMAIN" in 6.3 ??
Date: 1998-03-01 10:25:30
Message-ID: l03110704b11ee3a9e2e5@[147.233.159.109]
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

At 22:10 +0200 on 28/2/98, The Hermit Hacker wrote:

> I took a look here, and it didn't say (at least not in chapter
> 42)...what exactly does 'create domain' do? We don't, and won't, have it
> for v6.3, not with a release in a few days, and since I do recall anyone
> else having mentioned it before, it isn't on our TODO list, but sounds
> like something else to be added...
>
> But, a short description of what it does would be nice, as I've
> never heard of that one before :)

The idea, I think, is to define datatypes so that fields which are supposed
logically to be of the same kind will all have the same domain. Thus, if
the domain is later changed (say, implementation is changed from money to
float), all fields defined that way are changed together.

This is from SQL 1992:

A domain is a set of permissible values. A domain is defined in
a schema and is identified by a <domain name>. The purpose of a
domain is to constrain the set of valid values that can be stored
in SQL-data by various operations.

A domain definition specifies a data type. It may also specify a
<domain constraint> that further restricts the valid values of the
domain and a <default clause> that specifies the value to be used
in the absence of an explicitly specified value or column default.

A domain is described by a domain descriptor. A domain descriptor
includes:

- the name of the domain;

- the data type descriptor of the data type of the domain;

- the <collation name> from the <collate clause>, if any, of the
domain;

- the value of <default option>, if any, of the domain; and

- the domain constraint descriptors of the domain constraints, if
any, of the domain.

The syntax:

<domain definition> ::=
CREATE DOMAIN <domain name> [ AS ] <data type>
[ <default clause> ]
[ <domain constraint>... ]
[ <collate clause> ]

<domain constraint> ::=
[ <constraint name definition> ]
<check constraint definition> [ <constraint attributes> ]

I won't quote the entire syntax rules from SQL 1992 - I'm sure someone out
there has a copy. In any case, this is NOT Entry-Level SQL 1992, but rather
Intermediate Level.

Herouth

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Maurice Gittens 1998-03-01 12:11:03 Oid bug or feature?
Previous Message Cristian Gafton 1998-03-01 09:32:53 Re: [HACKERS] Re: Postgresql broken