Search Postgresql Archives

Re: extract psql meta-commands into library?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello




2014-03-07 16:42 GMT+01:00 Catherine Devlin <catherine.devlin@xxxxxxxxx>:
On Thu, Mar 6, 2014 at 12:09 PM, Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
> Hm ... the code in psql's describe.c is not terribly conducive to that.
> Parsing of the backslash command, execution of the query/queries, and
> presentation of the results is all rather tightly bound up; you'd have
> to think about how to decouple those.

I just looked into describe.c, but it was virtually my first look at C
in 15 years and I'm pretty intimidated.

Come to think of it, I really like the idea of moving the query
execution and presentation of results out into plpgsql functions in
template0; then it would be super-easy for applications to utilize
them.  Parsing the command could stay with psql, because the
applications would probably want to do that parsing themselves,
anyway.

I don't think so using plpgsql can be good idea:

a) client side is better for implementation version independent code

b) possible bugs in plpgsql code should not be fixed without living database - so any bug release can be significantly more dangerous than now.

Regards

Pavel
 

The trouble is that psql is written to work against older databases,
so if the code were stripped from describe.c in favor of calling
stored functions, those commands would stop working against older
PostgreSQL installations; and if the code were left in describe.c,
then the same function would exist in two different forms in two
different places, with all the maintanability problems that implies.

Is there a way around this I'm not thinking of?

Alternately, I may just give up and write my own, freestanding,
approximate implementation of the meta-commands with no effort to
actually replace the native one.  It could still be useful to
application developers if they find out about it.

--
- Catherine
http://catherinedevlin.blogspot.com


--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux