Re: PL/pgSQL 1.2
От
Marko Tiikkaja
Тема
Re: PL/pgSQL 1.2
Дата
Msg-id
540AC3F7.7090405@joh.to
Ответ на
Re: PL/pgSQL 1.2 (Pavel Stehule)
Список
Дерево обсуждения
PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Kevin Grittner <kgrittn@ymail.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Kevin Grittner <kgrittn@ymail.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Kevin Grittner <kgrittn@ymail.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Kevin Grittner <kgrittn@ymail.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Jan Wieck <jan@wi3ck.info>
Re: PL/pgSQL 2 Heikki Linnakangas <hlinnakangas@vmware.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Heikki Linnakangas <hlinnakangas@vmware.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Andrew Dunstan <andrew@dunslane.net>
Re: PL/pgSQL 2 Heikki Linnakangas <hlinnakangas@vmware.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Kevin Grittner <kgrittn@ymail.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Kevin Grittner <kgrittn@ymail.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Jan Wieck <jan@wi3ck.info>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Jan Wieck <jan@wi3ck.info>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Jan Wieck <jan@wi3ck.info>
Re: PL/pgSQL 2 David G Johnston <david.g.johnston@gmail.com>
Re: PL/pgSQL 2 Jan Wieck <jan@wi3ck.info>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Andres Freund <andres@2ndquadrant.com>
Re: PL/pgSQL 2 Hannu Krosing <hannu@2ndQuadrant.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Andres Freund <andres@2ndquadrant.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Andres Freund <andres@2ndquadrant.com>
Re: PL/pgSQL 2 Hannu Krosing <hannu@2ndQuadrant.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Steven Lembark <lembark@wrkhors.com>
Re: PL/pgSQL 2 Hannu Krosing <hannu@2ndQuadrant.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Steven Lembark <lembark@wrkhors.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Hannu Krosing <hannu@2ndQuadrant.com>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Andres Freund <andres@2ndquadrant.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Andres Freund <andres@2ndquadrant.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 David G Johnston <david.g.johnston@gmail.com>
Re: PL/pgSQL 2 Heikki Linnakangas <hlinnakangas@vmware.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Mark Kirkwood <mark.kirkwood@catalyst.net.nz>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Heikki Linnakangas <hlinnakangas@vmware.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Jan Wieck <jan@wi3ck.info>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Jan Wieck <jan@wi3ck.info>
Re: PL/pgSQL 2 Shaun Thomas <sthomas@optionshouse.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Heikki Linnakangas <hlinnakangas@vmware.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Andres Freund <andres@2ndquadrant.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Heikki Linnakangas <hlinnakangas@vmware.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Heikki Linnakangas <hlinnakangas@vmware.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Tom Lane <tgl@sss.pgh.pa.us>
Re: PL/pgSQL 2 Andres Freund <andres@2ndquadrant.com>
Re: PL/pgSQL 2 Bruce Momjian <bruce@momjian.us>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Bruce Momjian <bruce@momjian.us>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Bruce Momjian <bruce@momjian.us>
Re: PL/pgSQL 2 Andres Freund <andres@2ndquadrant.com>
Re: PL/pgSQL 2 Jan Wieck <jan@wi3ck.info>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Jan Wieck <jan@wi3ck.info>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Tom Lane <tgl@sss.pgh.pa.us>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 David G Johnston <david.g.johnston@gmail.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Tom Lane <tgl@sss.pgh.pa.us>
Re: PL/pgSQL 2 Bruce Momjian <bruce@momjian.us>
Re: PL/pgSQL 2 "Joshua D. Drake" <jd@commandprompt.com>
Re: PL/pgSQL 2 David Johnston <david.g.johnston@gmail.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 "Joshua D. Drake" <jd@commandprompt.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 "Joshua D. Drake" <jd@commandprompt.com>
Re: PL/pgSQL 2 Jan Wieck <jan@wi3ck.info>
Re: PL/pgSQL 2 Andrew Dunstan <andrew@dunslane.net>
Re: PL/pgSQL 2 Jan Wieck <jan@wi3ck.info>
Re: PL/pgSQL 2 Szymon Guz <mabewlun@gmail.com>
Re: PL/pgSQL 2 Christopher Browne <cbbrowne@gmail.com>
Re: PL/pgSQL 2 Bruce Momjian <bruce@momjian.us>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 "Joshua D. Drake" <jd@commandprompt.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 "Joshua D. Drake" <jd@commandprompt.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Robert Haas <robertmhaas@gmail.com>
Re: PL/pgSQL 2 David G Johnston <david.g.johnston@gmail.com>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Stephen Frost <sfrost@snowman.net>
Re: PL/pgSQL 2 "Joshua D. Drake" <jd@commandprompt.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: Allowing implicit 'text' -> xml|json|jsonb (was: PL/pgSQL
2) Craig Ringer <craig@2ndquadrant.com>
Re: Allowing implicit 'text' -> xml|json|jsonb Marko Tiikkaja <marko@joh.to>
Re: Allowing implicit 'text' -> xml|json|jsonb Craig Ringer <craig@2ndquadrant.com>
Re: Allowing implicit 'text' -> xml|json|jsonb Tom Lane <tgl@sss.pgh.pa.us>
Re: Allowing implicit 'text' -> xml|json|jsonb Craig Ringer <craig@2ndquadrant.com>
Re: Allowing implicit 'text' -> xml|json|jsonb Marko Tiikkaja <marko@joh.to>
Re: Allowing implicit 'text' -> xml|json|jsonb (was:
PL/pgSQL 2) Merlin Moncure <mmoncure@gmail.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Hannu Krosing <hannu@2ndQuadrant.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Hannu Krosing <hannu@2ndQuadrant.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Marko Tiikkaja <marko@joh.to>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Andres Freund <andres@2ndquadrant.com>
Re: PL/pgSQL 2 Tom Lane <tgl@sss.pgh.pa.us>
Re: PL/pgSQL 2 Neil Tiffin <neilt@neiltiffin.com>
Re: PL/pgSQL 2 Andrew Dunstan <andrew@dunslane.net>
Re: PL/pgSQL 2 Jan Wieck <jan@wi3ck.info>
Re: PL/pgSQL 2 David G Johnston <david.g.johnston@gmail.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 David Johnston <david.g.johnston@gmail.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Ian Barwick <ian@2ndquadrant.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Mark Kirkwood <mark.kirkwood@catalyst.net.nz>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Andrew Dunstan <andrew@dunslane.net>
Re: PL/pgSQL 2 Ryan Pedela <rpedela@datalanche.com>
Re: PL/pgSQL 2 Andrew Dunstan <andrew@dunslane.net>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Andrew Dunstan <andrew@dunslane.net>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Álvaro Hernández Tortosa <aht@nosys.es>
Re: PL/pgSQL 2 Neil Tiffin <neilt@neiltiffin.com>
Re: PL/pgSQL 2 Craig Ringer <craig@2ndquadrant.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Tom Lane <tgl@sss.pgh.pa.us>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Pavel Stehule <pavel.stehule@gmail.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Andres Freund <andres@2ndquadrant.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
Re: PL/pgSQL 2 Steven Lembark <lembark@wrkhors.com>
Re: PL/pgSQL 2 Merlin Moncure <mmoncure@gmail.com>
Re: PL/pgSQL 2 Merlin Moncure <mmoncure@gmail.com>
Re: PL/pgSQL 2 Joel Jacobson <joel@trustly.com>
On 2014-09-06 06:59, Pavel Stehule wrote: > People can prepare a simple functions like you did: > > ... > > And then use it in mass operations: > > BEGIN > FOR company IN SELECT * FROM company_list() > LOOP > FOR id IN SELECT * FROM user_list(company) > LOOP > update_user(id); > END LOOP; > > Or use it in application same style. Yes, someone *could* do that, people are dumb. But that's sort of *exactly* why we do it. We wrap these things into (sometimes) simple-looking function so that none of the application developers ever run any SQL. We define an interface between the application and the database, and that interface is implemented using PL/PgSQL functions. Sure, sometimes one function will just fire off a single UPDATE .. RETURNING, or a SELECT, but that doesn't matter. The trick is to be consistent everywhere. >> But further, even if we did follow every single one of the above points >> perfectly, it wouldn't change the point we're trying to make. What we're >> doing is following what the book dedicated an entire chapter to: Defensive >> Programming. Enforcing that that UPDATE affected exactly one row? >> Defensive Programming. >> > > Your strategy is defensive. 100%. But then I don't understand to your > resistant to verbosity. It is one basic stone of Ada design > > The problem of defensive strategy in stored procedures is possibility to > block optimizer and result can be terrible slow. On the end, it needs a > complex clustering solution, complex HA24 solution and higher complexity ~ > less safety. > > This is not problem on low load or low data applications. > > Banking applications are safe (and I accept, so there it is necessary), but > they are not famous by speed. Right. We deal with money. In general, I'll take slow over buggy any day. .marko
В списке pgsql-hackers по дате отправления