Re: ALTER COLUMN/logical column position - Mailing list pgsql-hackers

From Andreas Pflug
Subject Re: ALTER COLUMN/logical column position
Date
Msg-id 3FBCCB4E.4060900@pse-consulting.de
Whole thread Raw
In response to Re: ALTER COLUMN/logical column position  (Hannu Krosing <hannu@tm.ee>)
Responses Re: ALTER COLUMN/logical column position  (Hannu Krosing <hannu@tm.ee>)
List pgsql-hackers
Hannu Krosing wrote:

>
>
>You are just shifting the interface problems to a place needing way more
>changes in the backend. There will be some problems either way.
>  
>
Not quite. Certainly, basing internal storage on attstoragenum is more 
work in the backend, but less (precisely: zero) work on an unknown 
number of frontend tools and apps.

>also, tools needing knowledge should start using information schema as
>much as they can, making internal reshufflings less of a problem.
>  
>
We had this discussion. information_schema doesn't deliver enough info 
needed for admin tools.

>  
>
>>This way, the "user interface" doesn't change, and all those 
>>"SELECT ... FROM pg_attribute ORDER BY attnum" continue delivering the 
>>expected result.
>>    
>>
>
>Depending on what you expect ;)
>  
>
Usually, nobody should care about the column ordering, but for those 
unfortunate guys that rely on a specific SELECT * ordering the list of 
columns displayed in admin tools must show that ordering; this is what 
current admin tools expect from attnum. No SQL user would ever care 
about internal storage details/pointers/counters, so any admin tool 
would need to ORDER BY CASE WHEN version>=7.5 THEN attpos ELSE attnum 
END (and the unique key to pg_attribute, as seen from the tool, changes 
from refoid/attnum to refoid/attindex too).

>If you expect the above to give you all active columns as orderd as they
>are stored, then it does not give you what you expect.
>
>Btw, most of these concerns (and more) were already iterated when DROP
>column was done causing gaps in attnum. There were a lot of doomsday
>profecies, but in the end it went quite smoothly.
>
I don't bother about missing attnum values, even 1,2,3,5,6,8 is nicely 
ordered.

> The tools needing
>internal knowledge about storage (meaning any tool doing select .. from
>pg_...) have always needed some upgrades for new verions.
>  
>
Yes, but changes to pg_... should retain the usual meanings as much as 
possible, so older tools continue to work. The discussed change is 
problematic because old tools *seem* to work ok, but their attnum 
interpretation would be wrong.

>IMHO, The only behaviour visible to common user we should worry about is
>SELECT * , and a special column for solving this is _the_ easiest way to
>do it.
>
>  
>
Surely this is the easiest way. But it has the biggest impact on clients 
too. I'm just imagining what would happen to pgAdmin3. The column number 
would have to display attpos (this is what the user is interested in to 
see the ordering), while index, FK and so forth will continue to display 
attnum. This seems quite unwanted to me.


---
Are there any comments on the proposed lean way to alter columns for 
trivial type changes?

Regards,
Andreas



pgsql-hackers by date:

Previous
From: Stephan Szabo
Date:
Subject: Re: pg_restore and create FK without verification check
Next
From: Rod Taylor
Date:
Subject: Re: 4 Clause license?