summaryrefslogtreecommitdiff
path: root/src/pl/plperl
AgeCommit message (Collapse)Author
2002-10-18Make 'dummy' declarations in header files be 'extern int no_such_variable'Tom Lane
instead of 'extern int errno'; the latter is unsafe according to the ANSI C standard, as well as in practice on some platforms.
2002-09-21Provide an upgrade strategy for dump files containing functions declaredTom Lane
with OPAQUE. CREATE LANGUAGE, CREATE TRIGGER, and CREATE TYPE will all accept references to functions declared with OPAQUE --- but they will issue a NOTICE, and will modify the function entries in pg_proc to have the preferred type-safe argument or result types instead of OPAQUE. Per recent pghackers discussions.
2002-09-04Fix includes for plperl: ensure postgres.h is included first,Tom Lane
remove unnecessary inclusions.
2002-09-04pgindent run.Bruce Momjian
2002-08-22Add a bunch of pseudo-types to replace the behavior formerly associatedTom Lane
with OPAQUE, as per recent pghackers discussion. I still want to do some more work on the 'cstring' pseudo-type, but I'm going to commit the bulk of the changes now before the tree starts shifting under me ...
2002-06-15This patch wraps all accesses to t_xmin, t_cmin, t_xmax, and t_cmax inBruce Momjian
HeapTupleHeaderData in setter and getter macros called HeapTupleHeaderGetXmin, HeapTupleHeaderSetXmin etc. It also introduces a "virtual" field xvac by defining HeapTupleHeaderGetXvac and HeapTupleHeaderSetXvac. Xvac is used by VACUUM, in fact it is stored in t_cmin. Manfred Koizar
2002-05-28Change PL/Perl and Pg interface build to use configured compiler andPeter Eisentraut
Makefile.shlib system, not MakeMaker.
2002-05-05Create an internal semaphore API that is not tied to SysV semaphores.Tom Lane
As proof of concept, provide an alternate implementation based on POSIX semaphores. Also push the SysV shared-memory implementation into a separate file so that it can be replaced conveniently.
2002-03-06Add new elog() levels to stored procedure languages. plperl DEBUG hackBruce Momjian
still needed because only removed in 7.4.
2002-03-02Commit to match discussed elog() changes. Only update is that LOG isBruce Momjian
now just below FATAL in server_min_messages. Added more text to highlight ordering difference between it and client_min_messages. --------------------------------------------------------------------------- REALLYFATAL => PANIC STOP => PANIC New INFO level the prints to client by default New LOG level the prints to server log by default Cause VACUUM information to print only to the client NOTICE => INFO where purely information messages are sent DEBUG => LOG for purely server status messages DEBUG removed, kept as backward compatible DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1 added DebugLvl removed in favor of new DEBUG[1-5] symbols New server_min_messages GUC parameter with values: DEBUG[5-1], INFO, NOTICE, ERROR, LOG, FATAL, PANIC New client_min_messages GUC parameter with values: DEBUG[5-1], LOG, INFO, NOTICE, ERROR, FATAL, PANIC Server startup now logged with LOG instead of DEBUG Remove debug_level GUC parameter elog() numbers now start at 10 Add test to print error message if older elog() values are passed to elog() Bootstrap mode now has a -d that requires an argument, like postmaster
2002-02-23OK'ed by Peter.Bruce Momjian
The attached patch enables plperl to build under Cygwin. It is basically yet another BE_DLLLIBS patch with a perl MakeMaker twist. I tried the patch under Red Hat 7.1 Linux too and I did not observe any ill effects. Jason Tishler
2002-01-24Tweak plperl.c to compile against threaded Perls, per report fromTom Lane
cturner@redhat.com.
2002-01-24Fix incorrect test for whether Perl code is returning undef. ThisTom Lane
allows plperl routines to return NULL as intended.
2001-11-05New pgindent run with fixes suggested by Tom. Patch manually reviewed,Bruce Momjian
initdb/regression tests pass.
2001-10-25pgindent run on all C files. Java run to follow. initdb/regressionBruce Momjian
tests pass.
2001-10-19Fix plperl to discard cached function definition after CREATE ORTom Lane
REPLACE FUNCTION. Clean up typlen/typmod errors inherited from pltcl.
2001-10-06Rearrange fmgr.c and relcache so that it's possible to keep FmgrInfoTom Lane
lookup info in the relcache for index access method support functions. This makes a huge difference for dynamically loaded support functions, and should save a few cycles even for built-in ones. Also tweak dfmgr.c so that load_external_function is called only once, not twice, when doing fmgr_info for a dynamically loaded function. All per performance gripe from Teodor Sigaev, 5-Oct-01.
2001-09-16Install dynamically loadable modules into a private subdirectoryPeter Eisentraut
under libdir, for a cleaner separation in the installation layout and compatibility with binary packaging standards. Point backend's default search location there. The contrib modules are also installed in the said location, giving them the benefit of the default search path as well. No changes in user interface nevertheless.
2001-08-26VPATH and DESTDIR support for PL/Perl, using the same techniques employedPeter Eisentraut
in interfaces/perl5 a brief while ago. Also, since building PL/Perl without a shared libperl actually works on some platforms we can enable it there to get some development happening. I've only checked off linux right now, but others should be added in the future.
2001-06-20Apparently, on some systems, ExtUtils::Embed and MakeMaker are slightlyBruce Momjian
broken, and its impossible to make a shared library when compiling with both CCDLFLAGS and LDDLFAGS, you have to pick one or the other. Alex Pilosov
2001-06-18Well, after persuading cvsup and cvs that it _is_ possible to have localBruce Momjian
modifiable repositories, I have a clean untrusted plperl patch to offer you :) Highlights: * There's one perl interpreter used for both trusted and untrusted procedures. I do think its unnecessary to keep two perl interpreters around. If someone can break out from trusted "Safe" perl mode, well, they can do what they want already. If someone disagrees, I can change this. * Opcode is not statically loaded anymore. Instead, we load Dynaloader, which then can grab Opcode (and anything else you can 'use') on its own. * Checked to work on FreeBSD 4.3 + perl 5.5.3 , OpenBSD 2.8 + perl5.6.1, RedHat 6.2 + perl 5.5.3 * Uses ExtUtils::Embed to find what options are necessary to link with perl shared libraries * createlang is also updated, it can create untrusted perl using 'plperlu' * Example script (assuming you have Mail::Sendmail installed): create function foo() returns text as ' use Mail::Sendmail; %mail = ( To => q(you@yourname.com), From => q(me@here.com), Message => "This is a very short message" ); sendmail(%mail) or die $Mail::Sendmail::error; return "OK. Log says:\n", $Mail::Sendmail::log; ' language 'plperlu'; Alex Pilosov
2001-06-09Fix a few missed NOIND usages.Tom Lane
2001-06-01pltcl, plperl, and plpython all suffer the same bug previously fixedTom Lane
in plpgsql: they fail for datatypes that have old-style I/O functions due to caching FmgrInfo structs with wrong fn_mcxt lifetime. Although the plpython fix seems straightforward, I can't check it here since I don't have Python installed --- would someone check it?
2001-03-22pgindent run. Make it all clean.Bruce Momjian
2001-01-19> > I have attached a simple change to src/pl/plperl/plperl.c toBruce Momjian
> > enable the :bash_math opcodes. Currently plperl.c only > > enables the :default opcodes. This leave out about five of six > > math functions including sqrt(). Travis Bauer
2000-12-19Polish PL/Perl documentation. The README file got shrunk to being aPeter Eisentraut
pointer into the real documentation.
2000-12-08Improve error message for erroneous use of 'opaque' as plperl argumentTom Lane
or return type.
2000-11-20Revise handling of oldstyle/newstyle functions per recent discussionsTom Lane
in pghackers list. Support for oldstyle internal functions is gone (no longer needed, since conversion is complete) and pg_language entry 'internal' now implies newstyle call convention. pg_language entry 'newC' is gone; both old and newstyle dynamically loaded C functions are now called language 'C'. A newstyle function must be identified by an associated info routine. See src/backend/utils/fmgr/README.
2000-11-16Change SearchSysCache coding conventions so that a reference count isTom Lane
maintained for each cache entry. A cache entry will not be freed until the matching ReleaseSysCache call has been executed. This eliminates worries about cache entries getting dropped while still in use. See my posting to pg-hackers of even date for more info.
2000-11-02Pass on all CPPFLAGS that look like -I* to the PL/Perl build.Peter Eisentraut
(This previously worked, but must have gotten lost somewhere...)
2000-10-24Update plperl README per suggestions from Edward Bridges.Tom Lane
2000-10-24Eliminate POLLUTE=1 hack for cross-Perl-version compatibility by usingTom Lane
Devel::PPPort instead. Thanks to Gilles Darold for doing the legwork.
2000-09-17Support for DESTDIR make variable. This is used as in `make installPeter Eisentraut
DESTDIR=/else/where' and prepends the value of DESTDIR to the full installation paths (e.g., /else/where/usr/local/pgsql/bin). This allows users to install the package into a location different from the one that was configured and hard-coded into various scripts, e.g., for creating binary packages. DESTDIR is in many cases preferrable over `make install prefix=/else/where' because a) `prefix' affects the path that is hard-coded into the files, which can lead to a `make install prefix=xxx' (as done by the regression test driver) corrupting the files in the source tree with wrong paths. b) it doesn't work at all if a directory was overridden to not depend on `prefix', e.g., --sysconfdir=/etc. (Updating the regression test driver to use DESTDIR is a separate undertaking.) See also autoconf@gnu.org, From: Akim Demaille <akim@epita.fr>, Date: 08 Sep 2000 12:48:59 +0200, Message-ID: <mv4em2vb1lw.fsf@nostromo.lrde.epita.fr>, Subject: Re: HTML format documentation.
2000-09-12This patch, when applied in src/pl will unbreak plperl inBruce Momjian
7.0.2 release. Sorry, if that's fixed ages ago - I don't track development versions of PostgreSQL. Patch is just a little bit tested (some valid functions created and successfully run as well as some erroneous ones created and emitted proper error messages when used). My platform is FreeBSD 5.0-CURRENT (with perl 5.6.0 provided in the base system). Alex Kapranoff
2000-08-31Fix relative path references so that make knowns which dependencies referPeter Eisentraut
to one another. Sort out builddir vs srcdir variable namings. Remove some now obsoleted make variables.
2000-07-05Update textin() and textout() to new fmgr style. This is just phaseTom Lane
one of updating the whole text datatype, but there are so dang many calls of these two routines that it seems worth a separate commit.
2000-06-28Makefile cleanup for interface tree. Now essentially with all thePeter Eisentraut
standard targets and behaviour. Replaced Makefile.in's with Makefile's and declared the respective variables in Makefile.global. maintainer-clean target now available at top level, although it does not work in the backend tree yet. Cleanup pass over Makefile.shlib, renamed some targets and variables. The shared library symlink tests are now done by make, not the shell. ecpg: Remove one warning in sloppy flex output. PL/Perl and Perl interface: the MakeMaker documentation is confusing, the realclean target *does* "delete derived files", but it also uninstalls them. Don't use that. The submake targets in the various bin directories that update libpq should `make all', not `make libpq.a'. That is a) unportable, and b) doesn't build the shared library.
2000-06-27Makefile cleanup for bin and pl subtrees. They should now supportPeter Eisentraut
all the standard semantics. Also get rid of Makefile.in's on the way and instead declare all variables in Makefile.global.
2000-06-17Remove fmgrstamp-h business -- not needed and confusingPeter Eisentraut
Add options to configure to automatically build for Kerberos support; no more editing of make files.
2000-06-10Moved the intricacies of the perl interface build into its own makefilePeter Eisentraut
that now functions as a wrapper around the MakeMaker stuff. It might even behave sensically when we have separate build dirs. Same for plperl, which of course still doesn't work very well. Made sure that plperl respects the choice of --libdir. Added --with-python to automatically build and install the Python interface. Works similarly to the Perl5 stuff. Moved the burden of the distclean targets lower down into the source tree. Eventually, each make file should have its own. Added automatic remaking of makefiles and configure. Currently only for the top-level because of a bug(?) in Autoconf. Use GNU `missing' to work around missing autoconf and aclocal. Start factoring out macros into their own config/*.m4 files to increase readability and organization.
2000-06-05Latest round of fmgr updates. All functions with bool,char, or int2Tom Lane
inputs have been converted to newstyle. This should go a long way towards fixing our portability problems with platforms where char and short parameters are passed differently from int-width parameters. Still more to do for the Alpha port however.
2000-05-30Third round of fmgr updates: eliminate calls using fmgr() andTom Lane
fmgr_faddr() in favor of new-style calls. Lots of cleanup of sloppy casts to use XXXGetDatum and DatumGetXXX ...
2000-05-29Cleanup of <> and ""Bruce Momjian
2000-05-29Generated header files parse.h and fmgroids.h are now copied intoTom Lane
the src/include tree, so that -I backend is no longer necessary anywhere. Also, clean up some bit rot in contrib tree.
2000-05-29Second round of fmgr changes: triggers are now invoked in new style,Tom Lane
CurrentTriggerData is history.
2000-05-28First round of changes for new fmgr interface. fmgr itself and theTom Lane
key call sites are changed, but most called functions are still oldstyle. An exception is that the PL managers are updated (so, for example, NULL handling now behaves as expected in plperl and plpgsql functions). NOTE initdb is forced due to added column in pg_proc.
2000-05-23Transmit -I switches selected by configure (particularly those fromTom Lane
--with-includes) to makefiles for pltcl and plperl, so that these switches will be used even though we do not want other top-level CFLAGS. Ain't it fun trying to support multiple-compiler platforms?
2000-04-18Security fix for plperl.Bruce Momjian
2000-04-17Add code to test for non-shared libperl and fail gracefully.Tom Lane
Not a big step forward, but it's something...
2000-04-16Show failing OID in 'cache lookup failed' messages;Tom Lane
print OIDs as %u not %d.