2016-12-30 8:04 GMT+01:00 Guyren Howe <guyren@xxxxxxxxx>:
> On Dec 29, 2016, at 23:01 , Regina Obe <lr@xxxxxxxx> wrote:
>
>
>> As an aside from my last question about my LYDB effort:
>
>> https://medium.com/@gisborne/love-your-database-lydb- 23c69f480a1d#.4jngp2rcb
>
>> I would like to find a book or other resource about SQL server-side programming (stored procedures etc) best practices in general and for Postgres in particular.
>
> Shameless plug
>
> Have you checked out our book? The 2nd edition covered PostgreSQL 9.2 - 9.4.
> http://shop.oreilly.com/product/0636920052715.do
>
> We are working on the 3rd edition which is a bit fatter (probably will be about 50 pages fatter when we are done) than the 2nd edition.
>
> http://shop.oreilly.com/product/0636920052715.do
>
> The 3rd focuses on PostgreSQL 9.5-9.6 (and is in prerelease sale at moment). By the time of release, we'll probably have some PostgreSQL 10 content in there as well.
>
> It covers fancy SQL constructs and data types (both ANSI ones and ones unique to PostgreSQL), general administration, and writing stored functions with SQL, PLPGSQL and PL/V8.
>
> In the 3rd we are adding an additional PL/V8 example how to build a window function in PL/V8 (aka PL/_javascript_)
I’m sure the book is great. But it looks like much of the material I can find about Postgres: how to write a function, how to write a query, etc.
What I’m more looking for is “System Design with Postgres”: *when* to write a function, *when* to use a stored procedure over a client-side function.
Lot of Oracle's books related to this topic is valid for PostgreSQL too. The design of stored procedures in PostgreSQL is conceptually similar to Oracle.
The theme "stored procedures" is strongly controversial - from "stored procedures are evil" to "do all in procedures".
I like the strategy - what you can do easy in database, do it there - the client should to get a results. But don't do communication server from database. PostgreSQL is ACID, stored procedures are ACID. Outer world is not ACID - and interface ACID/NOACID is better to implement outside database.
Regards
Pavel
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general