Re: lack of consequence with domains and types
От
Erik Jones
Тема
Re: lack of consequence with domains and types
Дата
Msg-id
D504DDC8-4839-4F7E-AE1B-B442FDC52C74@engineyard.com
Ответ на
Re: lack of consequence with domains and types (Grzegorz Jaśkiewicz)
Список
Дерево обсуждения
lack of consequence with domains and types "Grzegorz Jaśkiewicz" <gryzman@gmail.com>
Re: lack of consequence with domains and types "Grzegorz Jaśkiewicz" <gryzman@gmail.com>
Re: lack of consequence with domains and types Erik Jones <ejones@engineyard.com>
Re: lack of consequence with domains and types "Grzegorz Jaśkiewicz" <gryzman@gmail.com>
Re: lack of consequence with domains and types Erik Jones <ejones@engineyard.com>
Re: lack of consequence with domains and types "Grzegorz Jaśkiewicz" <gryzman@gmail.com>
Re: lack of consequence with domains and types Erik Jones <ejones@engineyard.com>
Re: lack of consequence with domains and types "Grzegorz Jaśkiewicz" <gryzman@gmail.com>
Re: lack of consequence with domains and types "Grzegorz Jaśkiewicz" <gryzman@gmail.com>
Re: lack of consequence with domains and types "Grzegorz Jaśkiewicz" <gryzman@gmail.com>
Re: lack of consequence with domains and types "Merlin Moncure" <mmoncure@gmail.com>
Re: lack of consequence with domains and types "Merlin Moncure" <mmoncure@gmail.com>
On Dec 24, 2008, at 12:04 PM, Grzegorz Jaśkiewicz wrote: > On Wed, Dec 24, 2008 at 6:12 PM, Erik Jones > wrote: >> Yes, and columns have default values, too, which are not tied to >> their >> datatype's default value (if it even has one). ALTER TABLE >> initializes rows >> to have the new *column's* default. A column of some domain type >> could >> easily have some default other than the domain's default and, in >> fact, if >> you don't specify a default for the column then it's default is NULL. > > the whole thing about domains, is that you specify type and default, > and even check constraint. And I did specify default - hence I would > expect it to be set to that value!! You really need to understand the difference between a domain's default and a column's default. The ALTER TABLE docs specifically say that if you don't specify a default for the new *column* then that column is set to NULL for all rows. That is not the same as not providing a value for a column of some domain type with a default in an INSERT statement. A domain with a default does not specify that it can not be set to null: pagila=# create domain foo_domain as integer default 5; CREATE DOMAIN Time: 289.269 ms pagila=# create table foo_table (a int, b foo_domain); CREATE TABLE Time: 22.784 ms pagila=# insert into foo_table (a, b) values (1, null); INSERT 0 1 Time: 1.489 ms pagila=# insert into foo_table (a) values (1); INSERT 0 1 Time: 1.582 ms pagila=# select * from foo_table; a | b ---+---- 1 | \N 1 | 5 (2 rows) Erik Jones, Database Administrator Engine Yard Support, Scalability, Reliability 866.518.9273 x 260 Location: US/Pacific IRC: mage2k
В списке pgsql-general по дате отправления