Re: The missing pg_get_*def functions

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: The missing pg_get_*def functions
Дата
Msg-id 517FB6D5.20601@dunslane.net
обсуждение исходный текст
Ответ на Re: The missing pg_get_*def functions  (Joel Jacobson <joel@trustly.com>)
Список pgsql-hackers
On 04/30/2013 07:34 AM, Joel Jacobson wrote:
> On Tue, Apr 30, 2013 at 11:22 AM, Andrew Dunstan <andrew@dunslane.net> wrote:
>> Minor releases are supposed not to require any such operations. You should
>> normally be able to drop the binaries in place and restart. For C language
>> functions that is indeed all you have to do, but that's not the case for SQL
>> language functions, where the definition is contained in the catalogs, not
>> the binary.
> Minor releases don't even require pg_dump/pg_restore, so I really
> don't see the issue.


You have already been told what the issue is. There is no provision for 
updating the catalogs. Our users expect to be able to drop a minor 
upgrade binary in place and have nothing more to do. It's what they are 
used to and I at least have no interest in changing that. If you change 
the definition of provided SQL language functions you would need to 
apply those changes to each database in each cluster. Otherwise, a user 
will think they are on version X which has a fix for function Y and in 
fact they won't have the fix. That's a recipe for utter confusion.

All the existing pg_catalog SQL functions are one liners, apart from 
ts_debug().

>> If all you want is SQL language functions, there is nothing to stop you from
>> writing them and publishing them today as an extension.
> Yes, maybe I will, as a proof-of-concept and test of how complex or simple it
> would be, and how many lines of code pg_dump.c could be reduced with.
>


pg_dump does bulk operations in many cases, and one way we could make it 
faster would be to increase that, not reduce it (see comments where we 
get table attributes in pg_dump.c, for example). Providing singleton 
operations like this will not help it at all.

If your aim is to be able to replace all the code pg_dump runs by these 
singleton operations then I think it's almost certainly doomed to failure.

Having undertaken some of the exercise, I can also assure you that 
writing pg_get_table_def() in a single pure SQL statement will be .... 
challenging.

There is a case for having functions like these, but probably not for 
use by pg_dump, and I suspect they would best be done in C.

cheers

andrew




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

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Re: Substituting Checksum Algorithm (was: Enabling Checksums)
Следующее
От: Atri Sharma
Дата:
Сообщение: Re: Graph datatype addition