Commit Graph

74 Commits

Author SHA1 Message Date
Peter Eisentraut 0f48e06751 PL/Python: Improve documentation of nrows() method
Clarify that nrows() is the number of rows processed, versus the
number of rows returned, which can be obtained using len.  Also add
tests about that.
2012-04-16 11:30:32 +03:00
Peter Eisentraut c03523ed3f PL/Python: Fix crash when colnames() etc. called without result set
The result object methods colnames() etc. would crash when called
after a command that did not produce a result set.  Now they throw an
exception.

discovery and initial patch by Jean-Baptiste Quenot
2012-04-15 20:23:08 +03:00
Peter Eisentraut 206bec11bd Improve PL/Python database access function documentation
Organize the function descriptions as a list instead of running text,
for easier access.
2012-03-26 21:15:16 +03:00
Peter Eisentraut ee7fa66b19 PL/Python: Add result metadata functions
Add result object functions .colnames, .coltypes, .coltypmods to
obtain information about the result column names and types, which was
previously not possible in the PL/Python SPI interface.

reviewed by Abhijit Menon-Sen
2012-01-30 21:38:52 +02:00
Peter Eisentraut 6f6b46c9c0 PL/Python: Update example
Change the usesavedplan() example to use a more modern Python style
using the .setdefault() function.
2012-01-18 21:02:09 +02:00
Peter Eisentraut 89e850e6fd plpython: Add SPI cursor support
Add a function plpy.cursor that is similar to plpy.execute but uses an
SPI cursor to avoid fetching the entire result set into memory.

Jan Urbański, reviewed by Steve Singer
2011-12-05 19:52:15 +02:00
Peter Eisentraut 36a1ba9d5e Fix documentation reference to "above" example
found by Thom Brown
2011-06-04 23:12:27 +03:00
Peter Eisentraut c13dc6402b Spell checking and markup refinement 2011-05-19 01:14:45 +03:00
Tom Lane dca30da343 Avoid extra whitespace in the arguments of <indexterm>.
As noted by Thom Brown, this confuses the DocBook index processor; it
fails to merge entries that differ only in whitespace, and sorts them
unexpectedly as well.  Seems like a toolchain bug, but I'm not going to
hold my breath waiting for a fix.

Note: easiest way to find these is to look for double spaces in HTML.index.
2011-04-08 11:36:05 -04:00
Peter Eisentraut 856a23018c Cosmetic capitalization fix 2011-03-22 21:59:53 -04:00
Tom Lane bfd7f8cbb2 Make plpythonu language use plpython2 shared library directly.
The original scheme for this was to symlink plpython.$DLSUFFIX to
plpython2.$DLSUFFIX, but that doesn't work on Windows, and only
accidentally failed to fail because of the way that CREATE LANGUAGE created
or didn't create new C functions.  My changes of yesterday exposed the
weakness of that approach.  To fix, get rid of the symlink and make
pg_pltemplate show what's really going on.
2011-03-05 15:13:15 -05:00
Tom Lane c2903fb3d2 Update documentation to reflect that standard PLs are now extensions.
Recommend use of CREATE EXTENSION rather than plain CREATE LANGUAGE
where relevant.  Encourage PL authors to provide extension wrappers
for their PLs.
2011-03-05 01:08:38 -05:00
Peter Eisentraut 474a42473a PL/Python custom SPI exceptions
This provides a separate exception class for each error code that the
backend defines, as well as the ability to get the SQLSTATE from the
exception object.

Jan Urbański, reviewed by Steve Singer
2011-02-28 18:41:10 +02:00
Peter Eisentraut 22690719ea PL/Python explicit subtransactions
Adds a context manager, obtainable by plpy.subtransaction(), to run a
group of statements in a subtransaction.

Jan Urbański, reviewed by Steve Singer, additional scribbling by me
2011-02-27 21:15:35 +02:00
Peter Eisentraut bc411f25c1 Table function support for PL/Python
This allows functions with multiple OUT parameters returning both one
or multiple records (RECORD or SETOF RECORD).

Jan Urbański, reviewed by Hitoshi Harada
2011-02-26 16:53:11 +02:00
Peter Eisentraut 1c51c7d5ff Add PL/Python functions for quoting strings
Add functions plpy.quote_ident, plpy.quote_literal,
plpy.quote_nullable, which wrap the equivalent SQL functions.

To be able to propagate char * constness properly, make the argument
of quote_literal_cstr() const char *.  This also makes it more
consistent with quote_identifier().

Jan Urbański, reviewed by Hitoshi Harada, some refinements by Peter
Eisentraut
2011-02-22 23:41:23 +02:00
Peter Eisentraut 0c5933d010 Wrap PL/Python SPI calls into subtransactions
This allows the language-specific try/catch construct to catch and
handle exceptions arising from SPI calls, matching the behavior of
other PLs.

As an additional bonus you no longer get all the ugly "unrecognized
error in PLy_spi_execute_query" errors.

Jan Urbański, reviewed by Steve Singer
2011-02-02 22:06:10 +02:00
Bruce Momjian d56d246e70 Properly capitalize hyphenated words in documentation titles. 2011-02-01 17:00:26 -05:00
Alvaro Herrera 73bc5218df plpython has plpy.Error instead of plpy.ERROR
Author: Marti Raudsepp <marti@juffo.org>
2010-11-09 11:02:17 -03:00
Tom Lane 2ec993a7cb Support triggers on views.
This patch adds the SQL-standard concept of an INSTEAD OF trigger, which
is fired instead of performing a physical insert/update/delete.  The
trigger function is passed the entire old and/or new rows of the view,
and must figure out what to do to the underlying tables to implement
the update.  So this feature can be used to implement updatable views
using trigger programming style rather than rule hacking.

In passing, this patch corrects the names of some columns in the
information_schema.triggers view.  It seems the SQL committee renamed
them somewhere between SQL:99 and SQL:2003.

Dean Rasheed, reviewed by Bernd Helmle; some additional hacking by me.
2010-10-10 13:45:07 -04:00
Magnus Hagander 9f2e211386 Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
Peter Eisentraut 8586306048 Add tip about building plpython 2 and 3. Fix link to Python docs. 2010-09-08 20:35:51 +00:00
Peter Eisentraut 2e6dc5328c Document which Python environment variables affect PL/Python 2010-08-05 18:36:33 +00:00
Peter Eisentraut 803716013d Install safeguard against running PL/Python 2 and 3 in the same session 2010-07-08 18:42:12 +00:00
Peter Eisentraut 46ee42b816 Add note that using PL/Python 2 and 3 in the same session will probably crash 2010-07-06 21:37:31 +00:00
Peter Eisentraut 1e24678349 Add some information about what it means for PL/Python to be untrusted.
Similar information already appears in the PL/Perl and PL/Tcl chapters.
2010-03-29 21:35:59 +00:00
Peter Eisentraut 51d2c9b0bb Add some documentation about PL/Python limitations
suggested by Steve White (bug #5272)
2010-03-29 21:20:58 +00:00
Bruce Momjian 6ad4249b5c Add more 9.0 release note documentation links. 2010-03-21 02:24:29 +00:00
Peter Eisentraut a401226bd8 Prevent the injection of invalidly encoded strings by PL/Python into PostgreSQL
with a few strategically placed pg_verifymbstr calls.
2010-03-18 19:43:03 +00:00
Peter Eisentraut 66cac8feab Add some more structure and bits of information to PL/Python documentation 2010-03-13 20:55:05 +00:00
Peter Eisentraut adb7764030 PL/Python DO handler
Also cleaned up some redundancies between the primary error messages and the
error context in PL/Python.

Hannu Valtonen
2010-01-22 15:45:15 +00:00
Peter Eisentraut 8f649c9ac4 Add documentation why reassigning PL/Python function parameters in the
function body can have undesirable outcomes. (bug #5232)
2009-12-19 22:23:21 +00:00
Peter Eisentraut dd4cd55c15 Python 3 support in PL/Python
Behaves more or less unchanged compared to Python 2, but the new language
variant is called plpython3u.  Documentation describing the naming scheme
is included.
2009-12-15 22:59:55 +00:00
Peter Eisentraut db7386187f PL/Python array support
Support arrays as parameters and return values of PL/Python functions.
2009-12-10 20:43:40 +00:00
Alvaro Herrera 3fe3b81183 Update URL to Python bug tracker. Backpatch to 8.3; doesn't seem worthy of
further backpatch.
2009-03-30 16:15:43 +00:00
Tom Lane 7692d8d5b7 Support statement-level ON TRUNCATE triggers. Simon Riggs 2008-03-28 00:21:56 +00:00
Bruce Momjian 09a9f10e7f Consistenly use colons before '<programlisting>' blocks, where
appropriate.
2007-02-01 00:28:19 +00:00
Bruce Momjian a134ee3379 Update documentation on may/can/might:
Standard English uses "may", "can", and "might" in different ways:

        may - permission, "You may borrow my rake."

        can - ability, "I can lift that log."

        might - possibility, "It might rain today."

Unfortunately, in conversational English, their use is often mixed, as
in, "You may use this variable to do X", when in fact, "can" is a better
choice.  Similarly, "It may crash" is better stated, "It might crash".

Also update two error messages mentioned in the documenation to match.
2007-01-31 20:56:20 +00:00
Peter Eisentraut 0f763503ff Spellchecking and such 2006-10-23 18:10:32 +00:00
Tom Lane 425417d498 Editorial improvements for recent plpython doc updates. 2006-10-21 18:33:05 +00:00
Bruce Momjian 389fad1e6b Remove use of '<' and '>' in SGML, use '&' escapes.
Update find_gt_lt to allow grep parameters to be passed into it.
2006-10-16 17:28:03 +00:00
Tom Lane 676d1b4e67 Remove duplicated index entry. 2006-09-03 22:23:58 +00:00
Tom Lane 4ae15f29f7 Fix broken markup. 2006-09-03 22:15:32 +00:00
Bruce Momjian 819f22a302 Allow PL/python to return composite types and result sets
Sven Suursoho
2006-09-02 12:30:01 +00:00
Andrew Dunstan 0a269db9cf Add table_name and table_schema to plpython trigger data, plus docs and regression test. 2006-05-26 19:23:09 +00:00
Neil Conway 4de23092d0 Add some links to the CREATE FUNCTION reference page when describing
function definition for particular PLs. Original patch from David
Fetter, editorializing by Neil Conway.
2005-05-20 01:52:25 +00:00
Bruce Momjian 0e2f88a6d5 We don't put URL's in ulink's because the URL is always generated, but
we can put words in ulink and the URL will still be printed.

per Peter
2005-04-09 03:52:43 +00:00
Bruce Momjian fd977434b3 Adjust SGML ulink tags to the URL is always displayed in our printed docs. 2005-03-31 03:54:38 +00:00
Tom Lane 883ac5ca7a More minor updates and copy-editing. 2004-12-30 21:45:37 +00:00
Tom Lane dfdae5d63c Hook up the plpython result-object nrows and status methods correctly.
Adjust documentation to match current reality.
2004-12-17 02:14:48 +00:00