From: | Florian Weimer <fweimer(at)bfk(dot)de> |
---|---|
To: | Grzegorz Jaśkiewicz <gryzman(at)gmail(dot)com> |
Cc: | Dmitriy Igrishin <dmitigr(at)gmail(dot)com>, Alexander Farber <alexander(dot)farber(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: alter table add column - specify where the column will go? |
Date: | 2010-11-24 11:31:27 |
Message-ID: | 82tyj7hsa8.fsf@mid.bfk.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
* Grzegorz Jaśkiewicz:
> 2010/11/24 Florian Weimer <fweimer(at)bfk(dot)de>:
>> * Grzegorz Jaśkiewicz:
>>
>>> just never use SELECT *, but always call columns by names. You'll
>>> avoid having to depend on the order of columns, which is never
>>> guaranteed, even if the table on disk is one order, the return columns
>>> could be in some other.
>>
>> This can't be true because several SQL features rely on deterministic
>> column order. Here's an example:
>>
>> SELECT 1 AS a, 2 AS b UNION SELECT 3 AS b, 4 AS a;
>>
>> a | b
>> ---+---
>> 1 | 2
>> 3 | 4
>> (2 rows)
> Yes, most DBs do a good job to keep it consistent, but they don't have
> to. So unless you specify column names explicitly (like you did in the
> example above), there's no guarantees.
If the database looked at the column names, the result would be
(1, 2), (4, 3), not (1, 2), (3, 4).
--
Florian Weimer <fweimer(at)bfk(dot)de>
BFK edv-consulting GmbH http://www.bfk.de/
Kriegsstraße 100 tel: +49-721-96201-1
D-76133 Karlsruhe fax: +49-721-96201-99
From | Date | Subject | |
---|---|---|---|
Next Message | Dave Page | 2010-11-24 11:46:44 | Just 2 days left to register for PGDay.EU 2010 |
Previous Message | Grzegorz Jaśkiewicz | 2010-11-24 11:13:30 | Re: alter table add column - specify where the column will go? |