Re: column ordering, was Re: [PATCHES] Enums patch v2

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: column ordering, was Re: [PATCHES] Enums patch v2
Дата
Msg-id 45894660.3070706@dunslane.net
обсуждение исходный текст
Ответ на Re: column ordering, was Re: [PATCHES] Enums patch v2  (Russell Smith <mr-russ@pws.com.au>)
Ответы Re: column ordering, was Re: [PATCHES] Enums patch v2  (Stephen Frost <sfrost@snowman.net>)
Re: column ordering, was Re: [PATCHES] Enums patch  (Bruce Momjian <bruce@momjian.us>)
Re: column ordering, was Re: [PATCHES] Enums patch v2  (Russell Smith <mr-russ@pws.com.au>)
Список pgsql-hackers
Russell Smith wrote:
> Tom Lane wrote:
>> Stephen Frost <sfrost@snowman.net> writes:
>>  
>>> Force references to go through macros which implement the lookup for 
>>> the
>>> appropriate type?  ie: LOGICAL_COL(table_oid,2) vs.
>>> PHYSICAL_COL(table_oid,1)  Perhaps that's too simplistic.
>>>     
>>
>> It doesn't really address the question of how you know which one to
>> use at any particular line of code; or even more to the point, what
>> mechanism will warn you if you use the wrong one.
>>
>> My gut feeling about this is that we could probably enforce such a
>> distinction if we were using C++, but while coding in C I have no
>> confidence in it.  (And no, that's not a vote to move to C++ ...)
>>   
> What about a comprimise...
>
> The 8.1 documentation for ALTER TABLE states the following.
>
> Adding a column with a non-null default or changing the type of an 
> existing column will require the entire table to be rewritten. This 
> may take a significant amount of time for a large table; and it will 
> temporarily require double the disk space.
>
>
> Now, we are rewriting the table from scratch anyway, the on disk 
> format is changing.  What is stopping us from switching the column 
> order at the same time.  The only thing I can think is that the 
> catalogs will need more work to update them.  It's a middle sized 
> price to pay for being able to reorder the columns in the table.  One 
> of the problems I have is wanting to add a column in the middle of the 
> table, but FK constraints stop me dropping the table to do the 
> reorder.  If ALTER TABLE would let me stick it in the middle and 
> rewrite the table on disk, I wouldn't care.  It's likely that I would 
> be rewriting the table anyway.  And by specifying AT POSITION, or 
> BEFORE/AFTER you know for big tables it's going to take a while.
>

This isn't really a compromise. Remember that this discussion started 
with consideration of optimal record layout (minimising space use by 
reducing or eliminating alignment padding). The above proposal really 
does nothing for that.

cheers

andrew


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Stephen Frost
Дата:
Сообщение: Re: column ordering, was Re: [PATCHES] Enums patch v2
Следующее
От: Kenneth Marshall
Дата:
Сообщение: Re: effective_cache_size vs units