Commit Graph

391 Commits

Author SHA1 Message Date
Tom Lane 38f5fdb1e9 Repair OPEN cursor(args), which I broke on 11/29/01 with a change to
be smarter about parentheses in read_sql_construct().  Sigh.
2002-05-21 18:50:16 +00:00
Tom Lane c0e9dc1229 plpgsql_dstring_append was broken for long strings. 2002-05-05 17:38:26 +00:00
Tom Lane 72a3902a66 Create an internal semaphore API that is not tied to SysV semaphores.
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-05-05 00:03:29 +00:00
Tom Lane 53cedcac22 Retire xlateSqlType/xlateSqlFunc; all type name translations are now
handled as special productions.  This is needed to keep us honest about
user-schema type names that happen to coincide with system type names.
Per pghackers discussion 24-Apr.  To avoid bloating the keyword list
too much, I removed the translations for datetime, timespan, and lztext,
all of which were slated for destruction several versions back anyway.
2002-05-03 00:32:19 +00:00
Jan Wieck 241978b91b The attached patch fixes 4 instances of missing simi-colons in the
PL/PgSQL grammar, which were causing warnings when used with Bison
1.35.

Neil Conway <neilconway@rogers.com>
2002-05-01 12:40:22 +00:00
Tom Lane d5e99ab4d6 pg_type has a typnamespace column; system now supports creating types
in different namespaces.  Also, cleanup work on relation namespace
support: drop, alter, rename commands work for tables in non-default
namespaces.
2002-03-29 19:06:29 +00:00
Tom Lane 1dbf8aa7a8 pg_class has a relnamespace column. You can create and access tables
in schemas other than the system namespace; however, there's no search
path yet, and not all operations work yet on tables outside the system
namespace.
2002-03-26 19:17:02 +00:00
Tom Lane eb77ad55ed Re-allow CREATE AS (but not SELECT INTO) in EXECUTE. 2002-03-25 07:41:10 +00:00
Bruce Momjian 7d5edf2ba7 Add new elog() levels to stored procedure languages. plperl DEBUG hack
still needed because only removed in 7.4.
2002-03-06 18:50:33 +00:00
Bruce Momjian 92288a1cf9 Change made to elog:
o  Change all current CVS messages of NOTICE to WARNING.  We were going
to do this just before 7.3 beta but it has to be done now, as you will
see below.

o Change current INFO messages that should be controlled by
client_min_messages to NOTICE.

o Force remaining INFO messages, like from EXPLAIN, VACUUM VERBOSE, etc.
to always go to the client.

o Remove INFO from the client_min_messages options and add NOTICE.

Seems we do need three non-ERROR elog levels to handle the various
behaviors we need for these messages.

Regression passed.
2002-03-06 06:10:59 +00:00
Bruce Momjian a033daf566 Commit to match discussed elog() changes. Only update is that LOG is
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-03-02 21:39:36 +00:00
Tom Lane 29e3ef0fe9 Use quote-marks to try to clarify a plpgsql error message, per
gripe from Dan Langille.
2002-02-26 00:00:08 +00:00
Bruce Momjian b3199bc9fa OK'ed by Peter.
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-02-23 21:49:10 +00:00
Tom Lane 989b7d66d8 Tweak plperl.c to compile against threaded Perls, per report from
cturner@redhat.com.
2002-01-24 21:40:44 +00:00
Tom Lane 47ccf37c62 pltcl's spi_execp didn't handle NULL arguments quite correctly.
It would try to call the input conversion routines for them anyway.
So, a valid input string for the datatype had to be supplied.
2002-01-24 19:31:36 +00:00
Tom Lane a45641d8a4 Fix incorrect test for whether Perl code is returning undef. This
allows plperl routines to return NULL as intended.
2002-01-24 16:53:42 +00:00
Tom Lane ab5b063618 Remove long-obsolete version of pltcl documentation. 2002-01-23 18:48:39 +00:00
Tom Lane 830cdb5f45 Clean up Red Hat Tcl RPM brain-damage in a more reliable way: fix the
value of TCL_SHLIB_LD in the shell script that creates Makefile.tcldefs,
rather than trying to persude gmake to do it.
2002-01-23 18:45:41 +00:00
Tom Lane 2f383b2de6 Suppress bogus soname switch that RedHat RPMs put into tclConfig.sh. 2002-01-21 03:27:46 +00:00
Tom Lane 5490c72a64 make install failed in VPATH build. 2002-01-08 23:40:02 +00:00
Tom Lane 8830ce54d6 Tweak plpgsql's expression reader to be smarter about parentheses and
to give more useful error messages.  Stephen Szabo's example of this
morning ('loop' used as a variable name inside a subselect) works
correctly now, and a FOR that is misinterpreted as an integer FOR will
draw 'missing .. at end of SQL expression', which is at least
marginally helpful.
2001-11-29 22:57:37 +00:00
Tom Lane 1ca717f377 plpython security and error handling fixes, from
Kevin Jacobs and Brad McLean.
2001-11-16 18:04:31 +00:00
Peter Eisentraut aff53b27f0 Make the yacc rules safe for parallel make. See discussion on pgsql-patches
and comment in src/backend/parser/Makefile for the technical details.
2001-11-16 16:32:33 +00:00
Tom Lane 4be20187ab Fix some problems in new plpgsql cursor operations, found while trying
to reverse-engineer documentation for them.
2001-11-15 23:31:09 +00:00
Tom Lane 1c2d2dbb67 Give a more intelligible and useful error message for SELECT with no
destination in plpgsql.
2001-11-13 02:05:27 +00:00
Bruce Momjian 77e4fd889c Fix indenting for 'extern "C"' cases. 2001-11-08 20:37:52 +00:00
Tom Lane 0053cebea5 Fix coredump in plpgsql when trying to return a rowtype result.
Need to return a TupleTableSlot, not just a bare tuple.
2001-11-05 19:41:56 +00:00
Bruce Momjian ea08e6cd55 New pgindent run with fixes suggested by Tom. Patch manually reviewed,
initdb/regression tests pass.
2001-11-05 17:46:40 +00:00
Bruce Momjian 6783b2372e Another pgindent run. Fixes enum indenting, and improves #endif
spacing.  Also adds space for one-line comments.
2001-10-28 06:26:15 +00:00
Bruce Momjian b81844b173 pgindent run on all C files. Java run to follow. initdb/regression
tests pass.
2001-10-25 05:50:21 +00:00
Tom Lane 970a2d1c91 Rebuild cached function definition after CREATE OR REPLACE FUNCTION.
Fix typlen-vs-typmod errors inherited from pltcl.
2001-10-22 19:32:27 +00:00
Tom Lane 3a484d9e99 Fix plperl to discard cached function definition after CREATE OR
REPLACE FUNCTION.  Clean up typlen/typmod errors inherited from pltcl.
2001-10-19 22:43:49 +00:00
Tom Lane 58f6b951c2 Fix a lot of confusion between typlen and typmod. Didn't hurt too much
back when only varlena types paid any attention to typmod ...
2001-10-19 19:43:19 +00:00
Tom Lane abbc95e5c6 Fix pltcl to update cached function def after
CREATE OR REPLACE FUNCTION.
2001-10-19 02:43:46 +00:00
Tom Lane f42b88d1b4 Residual cleanup from making pltcl unknown support always enabled. 2001-10-13 15:24:23 +00:00
Bruce Momjian 1d3a47af0c Attached patch for unconditional enabling of pltcl-unknown support.
Enabling this feature adds very light overhead of 1 select from pg_class on
first using of pl/tcl in backend if unknown suppport is really unused.
But pl/tcl with this support has very improved functionality.

Patch includes changes to documentation.
2001-10-13 04:23:50 +00:00
Tom Lane 2f1c24cb1c Change plpgsql compiler so that all elogs are trapped and a suitable
NOTICE added about error location (same method already used by plpgsql
executor).  Add checking of pg_proc row xmin/cmin to ensure that
plpgsql functions will be recompiled after they've been modified by
CREATE OR REPLACE FUNCTION.
2001-10-09 15:59:56 +00:00
Tom Lane 0b3bca6c6f Change plpgsql to depend on main parser's type-declaration grammar,
rather than having its own somewhat half-baked notion of what a type
declaration looks like.  This is necessary now to ensure that plpgsql
will think a 'timestamp' variable has the same semantics as 'timestamp'
does in the main SQL grammar; and it should avoid divergences in future.
2001-10-09 04:15:38 +00:00
Tom Lane 85801a4dbd Rearrange fmgr.c and relcache so that it's possible to keep FmgrInfo
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-10-06 23:21:45 +00:00
Bruce Momjian 67bf0fc111 elog command need to use unicode conversion too.
Vsevolod Lobko
2001-10-04 15:48:37 +00:00
Bruce Momjian 25ec484722 This patch adds reporting of tcl global variable errorInfo
which contains stack trace.
  One problem, after this patch errors will generate multiline ERROR
messages. Is it acceptable or do I need split it and generate multiple
singleline messages?

Vsevolod Lobko
2001-10-04 15:47:41 +00:00
Bruce Momjian 96471bf106 Using strtol() on int8 values (input parameters or result sets) in
plpython would result in numeric overflows causing the backend to
terminate abruptly.

This patch fixes it.

Bradley McLean
2001-10-04 15:45:49 +00:00
Tom Lane 6d18c038b7 Fix a couple of stray // comments. 2001-10-01 17:53:12 +00:00
Bruce Momjian 034895125d > > > > > - PostgreSQL requires to be compiled with --enable-multibyte
> > > > >   and --enable-unicode-convertion if it ought to work correctly
> > > > >   with Tcl/Tk >= 8.1 (client or server side).
> > > > >
> > > > > - PL/Tcl needs to be changed to use pg_do_encoding_conversion
> > > > >   if it runs on a Tcl version >= 8.1 .
> > >
> > > > I'll do pl/tcl part in the next version of patch. Using this approach we
> > > > can eliminate overhead for databases in UNICODE.
> > >
> > > Any progress on this?  I'd prefer to get rid of this --enable-pltcl-utf
> > > option before release.
> >
> > Done
> >
> > Next version removes --enable-pltcl-utf switch and enables embedded
> > utf conversion of pgsql if tcl version >=8.1 and --enable-unicode-conversion
2001-10-01 15:33:31 +00:00
Tom Lane cdd9146863 The trailing semicolon in a plpgsql function definition is now optional.
Per gripe 9/26.
2001-09-26 21:35:28 +00:00
Peter Eisentraut 264f8f2b6c Install dynamically loadable modules into a private subdirectory
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-09-16 16:11:11 +00:00
Bruce Momjian 148f94b98f I noticed that plpython does not make the relid available inside
a trigger the way that pltcl does.

Here's a little patch that adds it in.

-Brad McLean
2001-09-12 03:03:25 +00:00
Bruce Momjian 16910e44de Next version of patch.
Now with documentation update and disabling of UTF conversion for Tcl <=8.0

On Fri, 24 Aug 2001, Vsevolod Lobko wrote:

> On Thu, 23 Aug 2001, Tom Lane wrote:
>
> > > Is this looks better?
> >
> > It does, but one small gripe: the lack of semicolons will probably cause
> > pg_indent to mess up the indentation.  (I know emacs' autoindent mode
> > will not work nicely with it, either.)  Please set up the macros so that
> > you write
> >
> >                         UTF_BEGIN;
> >                         Tcl_DStringAppend(&unknown_src, UTF_E2U(part), -1);
> >                         UTF_END;
> >
> > and then I'll be happy.
>
> Attached revised patch
>
> > Your point about overhead is a good one, so I retract the gripe about
> > using a configure switch.  But please include documentation patches to
> > describe the configure option in the administrator's guide (installation
> > section).
>
> This patch still uses configure switch for enabling feature.
>
> For enabling based on tcl version we have 2 posibilites:
>  1) having feature enabled by default, but in pltcl.c check for tcl
>     version and disable it for old versions
>  2) enable or disable at configure time based on tcl version, but there
>     are problem - current configure don't checks for tcl version at all
>     and my configure skills not enought for adding this
>

Vsevolod Lobko
2001-09-06 02:56:32 +00:00
Peter Eisentraut 42ae4f2940 Turn on plpython build by default if we have something that looks like a
shared library, or we can do without one.
2001-08-27 00:29:49 +00:00
Peter Eisentraut 34fd50880f VPATH and DESTDIR support for PL/Perl, using the same techniques employed
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-08-26 23:54:41 +00:00
Peter Eisentraut 1837f8cbdf Add -Wno-error because of "unclean" flex output. 2001-08-21 16:25:21 +00:00
Tom Lane 42fbb6dbe7 Clean up various memory leaks within plpgsql, and re-enable the
exec_eval_simple_expr shortcut, which was diked out in 7.1 because it
leaked too much space.  CVS tip now leaks no memory in Chris Ruprecht's
example, which formerly leaked to the tune of 500 MB.  (Much of this
is work that Jan already did; this commit just cleans up around the
edges.)
2001-08-02 21:31:23 +00:00
Bruce Momjian 84d2c518fe I noticed that pltcl didn't have any way to get to SPI_lastoid like plpgsql does.. I started using pltcl a lot because I like to decide when and how my queries get planned.. so I put one together really quick
Sorry I don't have the original around to make a quick diff, but its a very small change... I think this should be in the next release, there's no reason not to have it.

its a function with no expected arguments, so you can use it like:
spi_exec "INSERT INTO mytable(columns...) VALUES(values..)"
set oid [spi_lastoid]
spi_exec "SELECT mytable_id from mytable WHERE oid=$oid"

It just didn't make sense for me to use plpgsql and pltcl, or just screw
them both and use SPI from C.


bob@redivi.com
2001-08-02 15:45:55 +00:00
Bruce Momjian 5c4d1398a6 Back out SET AUTHORIZATION patch until security is resolved. 2001-07-12 17:42:08 +00:00
Bruce Momjian 09523c90fa Make code malloc memory of proper length. 2001-07-12 01:19:40 +00:00
Bruce Momjian d946b2083a I updated the patch to use the SET AUTHORIZATION { INVOKER | DEFINER }
terminology. Also, the function owner is now determined and saved at compile
time (no gotchas here, right?)/

Mark Volpe
2001-07-11 18:54:19 +00:00
Peter Eisentraut 8237d89c0f Support fake root install, separate build dir, dependency tracking, our
choice of compiler and flags, uninstall, and peculiar Python installation
layouts for PyGreSql.  Also install into site-packages now, as officially
recommended.  And pgdb.py is also installed now, used to be forgotten.
2001-07-10 16:33:02 +00:00
Bruce Momjian f5d0c6cad5 Apparently, on some systems, ExtUtils::Embed and MakeMaker are slightly
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-20 00:26:06 +00:00
Bruce Momjian 0ed7864d68 Well, after persuading cvsup and cvs that it _is_ possible to have local
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-18 21:40:06 +00:00
Tom Lane 7c106621de Fix a few missed NOIND usages. 2001-06-09 02:19:07 +00:00
Jan Wieck ce62c8b10e Patch from Ian Lance Taylor fixing multiple cursor arguments
and buffer zero termination.

Jan
2001-06-06 18:54:41 +00:00
Tom Lane 7748e9e7e5 pltcl, plperl, and plpython all suffer the same bug previously fixed
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-06-01 18:17:44 +00:00
Bruce Momjian c9a001a11e Allow IS and FOR in Pl/PgSQL cursors, per Oracle and ANSI. Jan-approved. 2001-05-31 17:15:40 +00:00
Tom Lane a056f14be0 Cause plpgsql's PERFORM to behave according to its documentation,
which says that PERFORM will execute any SELECT query and discard the
result.  The former implementation would in fact raise an error if the
result contained more than one row or more than one column.

Also, change plpgsql's error-logging mechanism to emit the additional
messages about error location at NOTICE rather than DEBUG level.  This
allows them to be seen by the client without having to dig into the
postmaster log file (which may be nonexistent or inaccessible by the
client).
2001-05-28 19:33:24 +00:00
Bruce Momjian 06a8346c84 See attached for a small patch that enables plpython to build cleanly
under Cygwin.  This patch together with my previous Python patch:

    http://postgresql.readysetnet.com/mhonarc/pgsql-patches/2001-05/msg00075.htm
l

enables full Python support (i.e., configure --with-python) for Cygwin
PostgreSQL.

Jason Tishler
2001-05-25 15:48:33 +00:00
Bruce Momjian f3c1ae58f2 Another Makefile fix for qnx patch. 2001-05-25 04:26:21 +00:00
Bruce Momjian 248a5a7257 Fix tabs in Makefile. 2001-05-25 04:24:33 +00:00
Bruce Momjian a1f14d30b1 Back out qnx plpgsql/Makefile change and move to src/Makefile. 2001-05-24 22:33:18 +00:00
Bruce Momjian f36fc7bb63 I haven't tried building postgres with the Watcom compiler for 7.1 because
it does not support 64bit integers. AFAIK that's the default data type for
OIDs, so I am not surprised that this does not work. Use gcc instead.
BTW., 7.1 does not compile as is with gcc either, I believed the
required patches made it into the 7.1.1 release but obviously I missed
the deadline.
Since the ports mailing list does not seem to be archived I have attached
a copy of the patch (for 7.1 and 7.1.1).

I've just performed a build of a Watcom compiled version and found a couple
of bugs in the watcom specific part of that patch. Please use the attached
version instead.

Tegge, Bernd
2001-05-24 15:53:34 +00:00
Jan Wieck d27f363e3f Enhancement of SPI to get access to portals
- New functions to create a portal using a prepared/saved
  SPI plan or lookup an existing portal by name.
- Functions to fetch/move from/in portals. Results are placed
  in the usual SPI_processed and SPI_tuptable, so the entire
  set of utility functions can be used to gain attribute access.
- Prepared/saved SPI plans now use their own memory context
  and SPI_freeplan(plan) can remove them.
- Tuple result sets (SPI_tuptable) now uses it's own memory
  context and can be free'd by SPI_freetuptable(tuptab).

Enhancement of PL/pgSQL

- Uses generic named portals internally in FOR ... SELECT
  loops to avoid running out of memory on huge result sets.
- Support for CURSOR and REFCURSOR syntax using the new SPI
  functionality. Cursors used internally only need no explicit
  transaction block. Refcursor variables can be used inside
  of explicit transaction block to pass cursors between main
  application and functions.


Jan
2001-05-21 14:22:19 +00:00
Jan Wieck 27b0e8c0b0 Adding ELSIF support contributed by Klaus Reger.
Jan
2001-05-18 21:16:59 +00:00
Peter Eisentraut 70aa2ae6a5 Remove linking hacks now that dynloader is fixed. 2001-05-14 22:06:50 +00:00
Peter Eisentraut bbc3920fe9 PL/Python should build portably now, if you can get over the fact that
there's no shared libpython.  Test suite works as well. Also, add some
documentation.
2001-05-12 17:49:32 +00:00
Peter Eisentraut c51b00a213 PL/Python integration: support in create/droplang, add CVS keywords,
remove useless files, beat some sense into Makefile.  For me it builds
and sort of runs, so it's a start.
2001-05-12 01:30:30 +00:00
Peter Eisentraut 5e19e14ecd Cleanups of pltcl unknown thingy. 2001-05-11 23:38:06 +00:00
Bruce Momjian 72c8af51fd Move disabled message up to a higher makefile. 2001-05-10 03:00:11 +00:00
Bruce Momjian 8ace5114dc This directory contains a module that implements the "Metaphone" code as
a PostgreSQL user-defined function.  The Metaphone system is a method of
matching similar sounding names (or any words) to the same code.

Metaphone was invented by Lawrence Philips as an improvement to the popular
name-hashing routine, Soundex.

This metaphone code is from Michael Kuhn, and is detailed at
   http://aspell.sourceforge.net/metaphone/metaphone-kuhn.txt

Joel Burton
2001-05-09 23:00:44 +00:00
Bruce Momjian 91e3b85529 Wow, I am getting good at this Makefile stuff. Peter may be OK with it. 2001-05-09 21:42:29 +00:00
Bruce Momjian a1a12b8a0c I think I got the pltcl Makefile unknown rules working properly. 2001-05-09 21:35:11 +00:00
Bruce Momjian 0007be5da7 More cleanups to generate tcl unknown from Makefile. 2001-05-09 20:30:09 +00:00
Bruce Momjian 36f41c7126 Make tcl unknown configure from Makefile, not configure. 2001-05-09 20:19:30 +00:00
Bruce Momjian 14536f591d More --enable-pltcl-unknown renames. 2001-05-09 20:08:08 +00:00
Bruce Momjian ec9cc733ca Add TODO file. 2001-05-09 19:55:22 +00:00
Bruce Momjian 0bef7ba549 Add plpython code. 2001-05-09 19:54:38 +00:00
Bruce Momjian f7659a9c18 This patch adds a new configure option --with-pltcl-unknown which
enables pltcl unknown support.


Also it adds substituting of tclsh with tclsh that was by configure in
pltcl_*mod scripts. For example, On freebsd, tclsh can be called
tclsh8.2 or
tclsh8.3 depending on installed version of Tcl.

After patching files
  src/pl/tcl/modules/pltcl_listmod
  src/pl/tcl/modules/pltcl_loadmod
  src/pl/tcl/modules/pltcl_delmod
must be renamed(copied,repocopied) to
  src/pl/tcl/modules/pltcl_listmod.in
  src/pl/tcl/modules/pltcl_loadmod.in
  src/pl/tcl/modules/pltcl_delmod.in

seva@sevasoft.kiev.ua
2001-05-09 19:19:00 +00:00
Tom Lane eb62f076d0 Un-break exec_move_row() for case that a NULL tuple and tupdesc are
passed, which occurs when no rows are retrieved by a SELECT.
Mea maxima culpa ... I should have caught this.
2001-05-08 01:00:53 +00:00
Tom Lane 8bb3c8fe54 exec_move_row() should be more forgiving of tuples with a different
number of columns than it was expecting, for reasons that are now
documented in the code...
2001-04-30 20:05:40 +00:00
Tom Lane d5096af2c4 Make the world safe for passing whole rows of views to functions. This
already worked fine for whole rows of tables, but not so well for views...
2001-04-18 20:42:56 +00:00
Tom Lane a3ed622b63 Since plpgsql keeps its compiled function parsetrees until backend exit,
it needs to ensure that data structures attached to fmgr info records in
the trees will stick around that long, too.  Current code was crashing
on cases like datatypes with old-style I/O functions.
2001-04-06 02:06:48 +00:00
Tom Lane 6faf150a30 Fix/cleanup DLLLIBS handling for Cygwin port. If it works it's to
Jason Tishler's credit, if it's broken it's my fault ...
2001-04-04 21:15:56 +00:00
Bruce Momjian 0686d49da0 Remove dashes in comments that don't need them, rewrap with pgindent. 2001-03-22 06:16:21 +00:00
Bruce Momjian 9e1552607a pgindent run. Make it all clean. 2001-03-22 04:01:46 +00:00
Bruce Momjian 296c806dd5 > Applied. Thanks.
One more :)) It's for improper function argumets for
PLTCL_UNKNOWN_SUPPORT code

I'm not an autoconf expert, but is it possible to enable unknown
support in pltcl with configure option ?
This support is really handy for real life usage of pl/tcl.

seva@sevasoft.kiev.ua
2001-03-07 16:18:08 +00:00
Bruce Momjian 3dc1b2b71d pltcl_loadmod has problems with big (>4k) modules because of missing incr
in splitting code:

seva@sevasoft.kiev.ua
2001-03-07 16:09:09 +00:00
Peter Eisentraut cb6edf9d56 Make sure -L and -I's for our source tree are always before system include
or library directories on the command line.
2001-02-20 19:20:30 +00:00
Tom Lane 414f94f262 Change plpgsql's GET DIAGNOSTICS statement to use SQL99-compatible
syntax.  Fix the RESULT_OID case, which never worked.  Add documentation.
2001-02-19 19:49:53 +00:00
Tom Lane a2dafc6416 Fix bugs in pltcl's new return_null command: it was liable to go belly up
if the return datatype's input converter was at all strict, because the
converter would get called on junk data when returning NULL.  Also
ensure that it gives an error rather than coredumping if someone tries
to use it in a trigger function.
2001-02-16 03:26:40 +00:00
Tom Lane 60d1d671a8 Fix erroneous sort request in pltcl selftest. 2001-02-16 03:22:41 +00:00
Bruce Momjian 4ea081e94f Format to match standard conventions 2001-02-10 22:53:40 +00:00
Bruce Momjian b54073ea4c Convert to standard 4-space tabs. 2001-02-10 22:42:01 +00:00
Peter Eisentraut 2660803697 Only look for bison as YACC; other yaccs need to be selected explicitly.
When no suitable YACC is configured, supply useful informational messages
to users.  (Same way flex has been handled for a while.)
2001-02-10 22:31:42 +00:00
Tom Lane dfbd5d6532 plpgsql's private copy of xlateSqlType was out of sync. Again. This
is clearly not maintainable, so dike it out in favor of calling the real
version in the backend's gram.y.
2001-02-09 03:26:28 +00:00
Tom Lane b8cbb8c7e3 Remove no-longer-needed mklang script; now superseded by createlang. 2001-02-09 01:05:42 +00:00
Tom Lane 8a2cdd77ad EXECUTE of a SELECT ... INTO now draws a 'not implemented' error,
rather than executing the INTO clause with non-plpgsql semantics
as it was doing for the last few weeks/months.  This keeps our options
open for making it do the right plpgsql-ish thing in future without
creating a backwards compatibility problem.  There is no loss of
functionality since people can get the same behavior with CREATE TABLE AS.
2001-02-09 00:14:26 +00:00
Tom Lane c9fe128316 Clean up per-tuple memory leaks in trigger firing and plpgsql
expression evaluation.
2001-01-22 00:50:07 +00:00
Bruce Momjian de266c6d73 > > I have attached a simple change to src/pl/plperl/plperl.c to
> > 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
2001-01-19 16:14:36 +00:00
Tom Lane 682b128993 Fix NOT NULL option for plpgsql variables (doesn't look like it
could ever have worked...)
2001-01-06 01:43:01 +00:00
Tom Lane 0ad5e43772 Fix misplaced strdup(), which could lead to error messages referencing
deallocated memory later on.
2001-01-06 01:39:01 +00:00
Tom Lane afeb8c4819 Clean up some unnecessary fragility in EXECUTE command. 2001-01-04 02:38:02 +00:00
Tom Lane 2153d1c106 Remove obsolete and unportable enable_plpgsql script. createlang has
been the supported and documented way to do this for a long time...
2000-12-30 00:50:44 +00:00
Peter Eisentraut f824d4a363 Polish PL/Perl documentation. The README file got shrunk to being a
pointer into the real documentation.
2000-12-19 18:16:26 +00:00
Peter Eisentraut 326fbd8837 List .o file explicitly as dependency, to work around a gmake bug
(intermediate .o file gets deleted and rebuild on next make invocation).
2000-12-15 18:50:35 +00:00
Tom Lane 8d7c0851a3 Improve error message for erroneous use of 'opaque' as plperl argument
or return type.
2000-12-08 00:11:55 +00:00
Tom Lane 6e646c7313 Improve error message for erroneous use of 'opaque' as pltcl argument
or return type.
2000-12-08 00:09:07 +00:00
Tom Lane 74c14995f1 Improve error message for erroneous use of 'opaque' as plpgsql argument
or return type.
2000-12-08 00:03:02 +00:00
Tom Lane a27b691e29 Ensure that all uses of <ctype.h> functions are applied to unsigned-char
values, whether the local char type is signed or not.  This is necessary
for portability.  Per discussion on pghackers around 9/16/00.
2000-12-03 20:45:40 +00:00
Tom Lane f5371feef9 Fix inadequate tree-walking code in exec_eval_clear_fcache. 2000-12-01 20:43:59 +00:00
Tom Lane 5bb2300b59 Revise handling of oldstyle/newstyle functions per recent discussions
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-20 20:36:57 +00:00
Tom Lane a933ee38bb Change SearchSysCache coding conventions so that a reference count is
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-16 22:30:52 +00:00
Peter Eisentraut 7301660048 outdated and obsolete 2000-11-03 20:38:42 +00:00
Peter Eisentraut a18490b73d Add global .SECONDARY: target to not allow make to delete intermediate
target files in implicit rule chains.  That might have been a cool idea
but it seems to be too buggy to work, as it caused spurious recompiles in
several places.
2000-11-03 20:27:40 +00:00
Peter Eisentraut 54121b9a8b Pass on all CPPFLAGS that look like -I* to the PL/Perl build.
(This previously worked, but must have gotten lost somewhere...)
2000-11-02 18:40:13 +00:00
Tom Lane f9b2298bb3 Wups, messed up the comment markers on that last change. 2000-10-24 19:31:13 +00:00
Tom Lane c5185e84e8 Update plperl README per suggestions from Edward Bridges. 2000-10-24 17:47:32 +00:00
Tom Lane 0fb5db60e6 Enable plperl to be built when --with-perl is selected. Dunno whether
latest fixes make it safe or not, but we won't find out if no one builds
it, eh?
2000-10-24 17:03:46 +00:00
Tom Lane 1318342b6e Eliminate POLLUTE=1 hack for cross-Perl-version compatibility by using
Devel::PPPort instead.  Thanks to Gilles Darold for doing the legwork.
2000-10-24 17:01:06 +00:00
Peter Eisentraut 7b021ce17c Polish shared library build to reduce number of special hacks. In
particular, allow linking with arbitrary commands rather than only $(AR) or
$(LD), and treat C++ without hacks.

Add option to disable shared libraries.  This takes the place of the
BSD_SHLIB variable.  The regression test driver ignores the plpgsql test
if there are no shared libraries available.
2000-10-23 21:44:12 +00:00
Tom Lane ee28d8b3d5 plpgsql regress tests seem a tad out of date ... repair bit rot. 2000-10-22 23:25:11 +00:00
Peter Eisentraut 805e431a38 Add support for VPATH builds, that is, building somewhere else than in the
source directory.  This involves mostly makefiles using $(srcdir) when they
might have used ".".  (Regression tests don't work with this, yet.)

Sort out usage of CPPFLAGS, CFLAGS (and CXXFLAGS).  Add "override" keyword
in most places, to preserve necessary flags even when the user overrode the
flags.
2000-10-20 21:04:27 +00:00
Tom Lane 8b6b414a5e Update pltcl regress test to exercise return_null; also make use of
the fact that CREATE FUNCTION and CREATE AGGREGATE now allow array
types to be named like int4[] rather than _int4.
2000-10-17 21:23:09 +00:00
Peter Eisentraut f428d053ce Revise Tcl/Tk configuration. Make missing Tcl after --with-tcl an error,
add --without-tk option to disable Tk.  We don't need the AC_PATH_XTRA
test because tkConfig.sh already contains all the information about how to
compile and link with X.  Also make sure that libpq is up to date for
libpgtcl.  Remove executable bits from pgaccess.sh, but add it to pgaccess.
2000-09-25 22:23:01 +00:00
Bruce Momjian 516aac42f9 disable plperl again. 2000-09-25 12:43:24 +00:00
Peter Eisentraut 335248c9b7 Support for DESTDIR make variable. This is used as in `make install
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-17 13:02:52 +00:00
Tatsuo Ishii 148f905f41 Allow PL/pgSQL accept non ascii identifiers 2000-09-15 11:59:40 +00:00
Tom Lane 3bfbe6991a Clean up compiler warning. 2000-09-12 19:41:40 +00:00
Bruce Momjian 5c6fa5ee32 This patch, when applied in src/pl will unbreak plperl in
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-09-12 04:28:30 +00:00
Jan Wieck c59077dd7b GET DIAGNOSTICS statement to PL/pgSQL to access SPI_processed
and SPI_return values. Patch from Philip Warner.

Jan
2000-09-05 09:02:18 +00:00
Peter Eisentraut 424f0edcb8 Fix relative path references so that make knowns which dependencies refer
to one another. Sort out builddir vs srcdir variable namings. Remove some
now obsoleted make variables.
2000-08-31 16:12:35 +00:00
Jan Wieck d4266620e1 Added EXECUTE command to PL/pgSQL for execution of
dynamic SQL and utility statements.

Jan
2000-08-31 13:26:16 +00:00
Peter Eisentraut f03fc94e7d New configure test for flex, which recognizes only flex but does so in all
incarnations (I hope). When an acceptable flex version is not found, print
instructive error messages from both configure and the makefiles, so that
users can continue building anyway.
2000-08-28 11:53:23 +00:00
Tom Lane 782c16c6a1 SQL-language functions are now callable in ordinary fmgr contexts ...
for example, an SQL function can be used in a functional index.  (I make
no promises about speed, but it'll work ;-).)  Clean up and simplify
handling of functions returning sets.
2000-08-24 03:29:15 +00:00
Tom Lane f9b2f9bb76 Fix plpgsql lexer to accept Windows-style and Mac-style newlines as
newlines.
2000-08-22 14:59:28 +00:00
Tom Lane 37168b8da4 Clean up handling of variable-free qual clauses. System now does the
right thing with variable-free clauses that contain noncachable functions,
such as 'WHERE random() < 0.5' --- these are evaluated once per
potential output tuple.  Expressions that contain only Params are
now candidates to be indexscan quals --- for example, 'var = ($1 + 1)'
can now be indexed.  Cope with RelabelType nodes atop potential indexscan
variables --- this oversight prevents 7.0.* from recognizing some
potentially indexscanable situations.
2000-08-13 02:50:35 +00:00
Tom Lane c298d74d49 More functions updated to new fmgr style --- money, name, tid datatypes.
We're reaching the mopup stage here (good thing too, this is getting
tedious).
2000-08-03 16:35:08 +00:00
Peter Eisentraut 32163099d7 Add distprep target to take some of the job of the release_prep script.
The latter updated accordingly. Also add `dist' and `distcheck' targets
to play with, but caveat packager.

Updated backend/bootstrap and backend/parser makefile to make them
marginally builddir aware and fix the usual set of things.

Add rule to automatically remake config.h dependent on config.h.in and
config.status. (Adopted from Autoconf manual and about every other
package.) On a good day we should now have a complete and accurate set
of dependencies throughout everything.
2000-07-19 16:30:27 +00:00
Jan Wieck 79e6648649 Added untrusted PL/TclU (pltclu) language. Executes all procedures
in a non-safe interpreter, so with full OS access! Language is
restricted to be used by DB superusers.

Added "argisnull n" and "return_null" commands to gain full control
over NULL values from new FMGR capabilities.

Jan
2000-07-19 11:53:02 +00:00
Jan Wieck ec1ea5295a Fixed an ordering problem in test queries and
formatting differences due to new psql.

Jan
2000-07-18 11:28:20 +00:00
Tom Lane 8b1b34f6c0 Update pltcl regress test's expected output for 7.0 psql output format.
NOTE: this implementation of tcl_avg() fails with 'divide by zero'
for zero input rows.  It ought to return NULL, but pltcl does not
currently provide a way to do that, so I'm leaving the problem unsolved
for now.
2000-07-18 04:45:59 +00:00
Tom Lane bec98a31c5 Revise aggregate functions per earlier discussions in pghackers.
There's now only one transition value and transition function.
NULL handling in aggregates is a lot cleaner.  Also, use Numeric
accumulators instead of integer accumulators for sum/avg on integer
datatypes --- this avoids overflow at the cost of being a little slower.
Implement VARIANCE() and STDDEV() aggregates in the standard backend.

Also, enable new LIKE selectivity estimators by default.  Unrelated
change, but as long as I had to force initdb anyway...
2000-07-17 03:05:41 +00:00
Tom Lane 139f19c302 update pltcl test to have at least some chance of running ... still
seems to be busted though ...
2000-07-17 02:22:50 +00:00