aboutsummaryrefslogtreecommitdiff
path: root/src/pl/plperl/plperl.c
Commit message (Collapse)AuthorAge
...
* Previous fix for temporary file management broke returning a set fromHeikki Linnakangas2009-12-29
| | | | | | | | | | | | | | PL/pgSQL function within an exception handler. Make sure we use the right resource owner when we create the tuplestore to hold returned tuples. Simplify tuplestore API so that the caller doesn't need to be in the right memory context when calling tuplestore_put* functions. tuplestore.c automatically switches to the memory context used when the tuplestore was created. Tuplesort was already modified like this earlier. This patch also removes the now useless MemoryContextSwitch calls from callers. Report by Aleksei on pgsql-bugs on Dec 22 2009. Backpatch to 8.1, like the previous patch that broke this.
* Fix session-lifespan memory leak when a plperl function is redefined:Tom Lane2009-11-29
| | | | | | | | we have to tell Perl it can release its compiled copy of the function text. Noted by Alexey Klyukin. Back-patch to 8.2 --- the problem exists further back, but this patch won't work without modification, and it's probably not worth the trouble.
* Add support for anonymous code blocks (DO blocks) to PL/Perl.Tom Lane2009-11-29
| | | | Joshua Tolley, reviewed by Brendan Jurd and Tim Bunce
* Ensure the previous Perl interpreter selection is restored upon exit fromTom Lane2009-10-31
| | | | | plperl_call_handler, in both the normal and error-exit paths. Per report from Alexey Klyukin.
* Convert a perl array to a postgres array when returned by Set Returning ↵Andrew Dunstan2009-09-28
| | | | Functions as well as non SRFs. Backpatch to 8.1 where these facilities were introduced. with a little help from Abhijit Menon-Sen.
* errcontext support in PL/PerlPeter Eisentraut2009-09-16
| | | | Author: Alexey Klyukin <alexk@commandprompt.com>
* 8.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef listBruce Momjian2009-06-11
| | | | provided by Andrew.
* Move variable declaration to avoid 'unused variable' warning when theTom Lane2009-06-06
| | | | ifdef doesn't trigger. Not worth back-patching. Per buildfarm reports.
* Adjust recent PERL_SYS_INIT3 call to avoid platforms where it might fail, ↵Andrew Dunstan2009-06-05
| | | | and to remove compilation warning. Backpatch the release 7.4
* Initialise perl library as documented in perl API. Backpatch to release 7.4.Andrew Dunstan2009-06-04
|
* another small message tweakPeter Eisentraut2009-02-20
|
* Wordsmithing for PL/Perl messagesPeter Eisentraut2009-02-19
|
* Fix executor/spi.h to follow our usual conventions for include files, ie,Tom Lane2009-01-07
| | | | | | | | | not include postgres.h nor anything else it doesn't directly need. Add #includes to calling files as needed to compensate. Per my proposal of yesterday. This should be noted as a source code change in the 8.4 release notes, since it's likely to require changes in add-on modules.
* Append major version number and for libraries soname major version numberPeter Eisentraut2008-12-11
| | | | | | | to the gettext domain name, to simplify parallel installations. Also, rename set_text_domain() to pg_bindtextdomain(), because that is what it does.
* Some infrastructure changes for the upcoming auto-explain contrib module:Tom Lane2008-11-19
| | | | | | | | | | | | | | | | | | | | | | * Refactor explain.c slightly to export a convenient-to-use subroutine for printing EXPLAIN results. * Provide hooks for plugins to get control at ExecutorStart and ExecutorEnd as well as ExecutorRun. * Add some minimal support for tracking the total runtime of ExecutorRun. This code won't actually do anything unless a plugin prods it to. * Change the API of the DefineCustomXXXVariable functions to allow nonzero "flags" to be specified for a custom GUC variable. While at it, also make the "bootstrap" default value for custom GUCs be explicitly specified as a parameter to these functions. This is to eliminate confusion over where the default comes from, as has been expressed in the past by some users of the custom-variable facility. * Refactor GUC code a bit to ensure that a custom variable gets initialized to something valid (like its default value) even if the placeholder value was invalid.
* Be more tense about not creating tuplestores with randomAccess = true unlessTom Lane2008-10-29
| | | | | | | | backwards scan could actually happen. In particular, pass a flag to materialize-mode SRFs that tells them whether they need to require random access. In passing, also suppress unneeded backward-scan overhead for a Portal's holdStore tuplestore. Per my proposal about reducing I/O costs for tuplestores.
* Improve translatability of error messages for external modules by tweakingAlvaro Herrera2008-10-09
| | | | | the ereport macro. Included in this commit are enough files for starting plpgsql, plpython, plperl and pltcl translations.
* Support statement-level ON TRUNCATE triggers. Simon RiggsTom Lane2008-03-28
|
* Simplify and standardize conversions between TEXT datums and ordinary CTom Lane2008-03-25
| | | | | | | | | | | | | | | | | | | | strings. This patch introduces four support functions cstring_to_text, cstring_to_text_with_len, text_to_cstring, and text_to_cstring_buffer, and two macros CStringGetTextDatum and TextDatumGetCString. A number of existing macros that provided variants on these themes were removed. Most of the places that need to make such conversions now require just one function or macro call, in place of the multiple notational layers that used to be needed. There are no longer any direct calls of textout or textin, and we got most of the places that were using handmade conversions via memcpy (there may be a few still lurking, though). This commit doesn't make any serious effort to eliminate transient memory leaks caused by detoasting toasted text objects before they reach text_to_cstring. We changed PG_GETARG_TEXT_P to PG_GETARG_TEXT_PP in a few places where it was easy, but much more could be done. Brendan Jurd and Tom Lane
* Add a new tuplestore API function, tuplestore_putvalues(). This isNeil Conway2008-03-25
| | | | | | | identical to tuplestore_puttuple(), except it operates on arrays of Datums + nulls rather than a fully-formed HeapTuple. In several places that use the tuplestore API, this means we can avoid creating a HeapTuple altogether, saving a copy.
* Document the fix for perl 5.10 with this comment:Andrew Dunstan2008-01-23
| | | | | | | * The temporary enabling of the caller opcode here is to work around a * bug in perl 5.10, which unkindly changed the way its Safe.pm works, without * notice. It is quite safe, as caller is informational only, and in any case * we only enable it while we load the 'strict' module.
* Work around for perl 5.10 bug - fix due to perl hacker Simon Cozens.Andrew Dunstan2008-01-22
|
* Suppress compiler warnings in recent plperl patch. Avoid uselessly expensiveTom Lane2007-12-01
| | | | lookup of the well-known OID of textout().
* Workaround for perl problem where evaluating UTF8 regexes can causeAndrew Dunstan2007-12-01
| | | | | | implicit loading of modules, thereby breaking Safe rules. We compile and call a tiny perl function on trusted interpreter init, after which the problem does not occur.
* Re-run pgindent with updated list of typedefs. (Updated README shouldBruce Momjian2007-11-15
| | | | avoid this problem in the future.)
* pgindent run for 8.3.Bruce Momjian2007-11-15
|
* Fix plperl and pltcl to include the name of the current function whenTom Lane2007-10-05
| | | | | passing on errors from the language interpreter. (plpython seems fairly OK about this already.) Per gripe from Robert Kleemann.
* Fix incorrect tests for undef Perl values in some places in plperl.c.Tom Lane2007-06-28
| | | | | | The correct test for defined-ness is SvOK(sv), not anything involving SvTYPE. Per bug #3415 from Matt Taylor. Back-patch as far as 8.0; no apparent problem in 7.x.
* Support enum data types. Along the way, use macros for the values ofTom Lane2007-04-02
| | | | | pg_type.typtype whereever practical. Tom Dunstan, with some kibitzing from Tom Lane.
* Combine cmin and cmax fields of HeapTupleHeaders into a single field, byTom Lane2007-02-09
| | | | | | | | | | keeping private state in each backend that has inserted and deleted the same tuple during its current top-level transaction. This is sufficient since there is no need to be able to determine the cmin/cmax from any other transaction. This gets us back down to 23-byte headers, removing a penalty paid in 8.0 to support subtransactions. Patch by Heikki Linnakangas, with minor revisions by moi, following a design hashed out awhile back on the pghackers list.
* Wording cleanup for error messages. Also change can't -> cannot.Bruce Momjian2007-02-01
| | | | | | | | | | | | | | 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".
* remove unnecessary and now inaccurate cast which I should have removed with ↵Andrew Dunstan2007-01-27
| | | | other old code.
* Allow args to spi_prepare to be standard type aliaes as well as those known ↵Andrew Dunstan2007-01-27
| | | | in pg_type. Fixes bug #2917. Add some regression tests for these cases.
* remove duplicate declaration, per report from Magnus Hagander.Andrew Dunstan2006-11-21
|
* Force plperl and plperlu to run in separate interpreters. Create an errorAndrew Dunstan2006-11-13
| | | | | on an attempt to create the second interpreter if this is not supported by the perl installation. Per recent -hackers discussion.
* Clean up local redeclarations of variables with DLLIMPORT, per reportTom Lane2006-10-19
| | | | from Magnus that MSVC complains about this.
* Adjust plperl to ensure that all strings and hash keys passed to PerlTom Lane2006-10-15
| | | | | are marked as UTF8 when the database encoding is UTF8. This should avoid inconsistencies like that exhibited in bug #2683 from Vitali Stupin.
* pgindent run for 8.2.Bruce Momjian2006-10-04
|
* Add new return codes SPI_OK_INSERT_RETURNING etc to the SPI API.Tom Lane2006-08-27
| | | | | | | Fix all the standard PLs to be able to return tuples from FOO_RETURNING statements as well as utility statements that return tuples. Also, fix oversight that SPI_processed wasn't set for a utility statement returning tuples. Per recent discussion.
* Back out plperl OUT hash/array parameter patch, again.Bruce Momjian2006-08-13
|
* Re-apply plperl patch that allows OUT parameters to be placed into PerlBruce Momjian2006-08-13
| | | | hash and array variables. (regression output updated)
* Back out patch for plperl to handle OUT paramaters into arrays andBruce Momjian2006-08-12
| | | | hashes. Was causing regression failures.
* plperl:Bruce Momjian2006-08-11
| | | | | | | Allow conversion from perl to postgresql array in OUT parameters. Second, allow hash form output from procedures with one OUT argument. Pavel Stehule
* Add a feature for automatic initialization and finalization of dynamicallyTom Lane2006-08-08
| | | | | | | | | loaded libraries: call functions _PG_init() and _PG_fini() if the library defines such symbols. Hence we no longer need to specify an initialization function in preload_libraries: we can assume that the library used the _PG_init() convention, instead. This removes one source of pilot error in use of preloaded libraries. Original patch by Ralf Engelschall, preload_libraries changes by me.
* Fix problems with cached tuple descriptors disappearing while still in useTom Lane2006-06-16
| | | | | | | | | | by creating a reference-count mechanism, similar to what we did a long time ago for catcache entries. The back branches have an ugly solution involving lots of extra copies, but this way is more efficient. Reference counting is only applied to tupdescs that are actually in caches --- there seems no need to use it for tupdescs that are generated in the executor, since they'll go away during plan shutdown by virtue of being in the per-query memory context. Neil Conway and Tom Lane
* Magic blocks don't do us any good unless we use 'em ... so install oneTom Lane2006-05-30
| | | | in every shared library.
* Make plperl's $_TD trigger data a global rather than a lexical variable,Andrew Dunstan2006-05-29
| | | | | with a fresh local value for each invocation, to avoid unexpected sharing violations. Per recent -hackers discussion.
* Add table_name and table_schema to plperl trigger data. relname isAndrew Dunstan2006-05-26
| | | | | | kept but now deprecated. Patch from Adam Sjøgren. Add regression test to show plperl trigger data (Andrew). TBD: apply similar changes to plpgsql, plpython and pltcl.
* Modify all callers of datatype input and receive functions so that if theseTom Lane2006-04-04
| | | | | | | | | | | | | | | functions are not strict, they will be called (passing a NULL first parameter) during any attempt to input a NULL value of their datatype. Currently, all our input functions are strict and so this commit does not change any behavior. However, this will make it possible to build domain input functions that centralize checking of domain constraints, thereby closing numerous holes in our domain support, as per previous discussion. While at it, I took the opportunity to introduce convenience functions InputFunctionCall, OutputFunctionCall, etc to use in code that calls I/O functions. This eliminates a lot of grotty-looking casts, but the main motivation is to make it easier to grep for these places if we ever need to touch them again.
* Fix a few places that were checking for the return value of palloc() to beNeil Conway2006-03-19
| | | | | non-NULL: palloc() ereports on OOM, so we can safely assume it returns a valid pointer.