postgresql/src/interfaces/perl5
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
..
examples Rename perl example eg directory to examples. 2000-06-01 03:05:24 +00:00
Changes More perl cleanup 2000-06-01 03:07:33 +00:00
GNUmakefile Fix relative path references so that make knowns which dependencies refer 2000-08-31 16:12:35 +00:00
MANIFEST More perl cleanup 2000-06-01 03:07:33 +00:00
Makefile.PL Moved the intricacies of the perl interface build into its own makefile 2000-06-10 18:02:12 +00:00
Pg.pm pgsql_perl5-1.8.0 1998-09-27 19:12:35 +00:00
Pg.xs Change PQconndefaults() to return a malloc'd array, instead of a static 2000-03-11 03:08:37 +00:00
README pgsql_perl5-1.8.0 1998-09-27 19:12:35 +00:00
test.pl Update perl5's self-test for changed spelling of connection failure 2000-03-11 02:57:24 +00:00
typemap pgsql_perl5-1.8.0 1998-09-27 19:12:35 +00:00

README

#-------------------------------------------------------
#
# $Id: README,v 1.8 1998/09/27 19:12:24 mergl Exp $
#
# Copyright (c) 1997, 1998  Edmund Mergl
#
#-------------------------------------------------------

DESCRIPTION:
------------

This is version 1.8.0 of pgsql_perl5 (previously called pg95perl5).

Pgsql_perl5 is an interface between Larry Wall's language perl version 5 and 
the database PostgreSQL (previously Postgres95). This has been done by using 
the Perl5 application programming interface for C extensions which calls the 
Postgres programmer's interface LIBPQ. Pgsql_perl5 tries to implement the LIBPQ-
interface as close as possible.

You have the choice between two different interfaces: the old C-style like 
interface and a new one, using a more Perl-ish like style. The old style 
has the benefit, that existing Libpq applications can easily be ported to 
perl. The new style uses class packages and might be more familiar for C++-
programmers. 

NOTE: it is planned to drop the old C-style interface in the next major release 
      of PostgreSQL. 



COPYRIGHT:
----------

You may distribute under the terms of either the GNU General Public
License or the Artistic License, as specified in the Perl README file.



IF YOU HAVE PROBLEMS:
---------------------

Please send comments and bug-reports to <pgsql-interfaces@postgresql.org>

Please include the output of perl -v,
                         and perl -V,
           the version of PostgreSQL,
           and the version of pgsql_perl5
in your bug-report.


REQUIREMENTS:
-------------

  - build, test and install Perl5          (at least 5.002)
  - build, test and install PostgreSQL     (at least 6.4)


PLATFORMS:
----------

  This release of pgsql_perl5 has been developed using Linux 2.0 with 
  dynamic loading for the perl extensions. Let me know, if there are 
  any problems with other platforms. 


INSTALLATION:
-------------

Since the perl5 interface is always contained in the source tree of PostgreSQL, 
it is usually build together with PostgreSQL itself. This can be obtained by 
adding the option '--with-perl' to the configure command. 

In case you need to build the perl interface stand alone, you need to set the 
environment variable POSTGRES_HOME, pointing to the PostgreSQL home-directory. 
Also PostgreSQL needs to be installed having the include files in 
$POSTGRES_HOME/include and the libs in $POSTGRES_HOME/lib. Then you have to 
build the module as any standard perl-module with the following commands: 

1.   perl Makefile.PL
2.   make
3.   make test
4.   make install

( 1. to 3. as normal user, not as root ! )


TESTING:
--------

Run 'make test'.
Note, that the user running this script must have been created with the access 
rights to create databases *AND* users ! Do not run this script as root ! 

If testing fails with the message 'login failed', please check if access 
to the database template1 as well as pgperltest is not protected via pg_hba.conf. 

If you are using the shared library libpq.so check if your dynamic loader 
finds libpq.so. With Linux the command /sbin/ldconfig -v should tell you, 
where it finds libpq.so. If ldconfig does not find libpq.so, either add an 
appropriate entry to /etc/ld.so.conf and re-run ldconfig or add the path to 
the environment variable LD_LIBRARY_PATH. 
A typical error message resulting from not finding libpq.so is: 
  Can't load './blib/arch/auto/Pg/Pg.so' for module Pg: File not found at

Some linux distributions have an incomplete perl installation. 
If you have compile errors like "XS_VERSION_BOOTCHECK undeclared", make a 
          'find .../lib/perl5 -name XSUB.h -print'
If this file is not present, you need to recompile and reinstall perl. 

Also RedHat 5.0 seems to have an incomplete perl-installation: if 
you get error message during the installation complaining about a 
missing perllocal.pod, you need to recompile and reinstall perl. 

SGI users: if you get segmentation faults make sure, you use the malloc which 
           comes with perl when compiling perl (the default is not to).
           "David R. Noble" <drnoble@engsci.sandia.gov>

HP users: if you get error messages like:
              can't open shared library: .../lib/libpq.sl
              No such file or directory
          when running the test script, try to replace the
          'shared' option in the LDDFLAGS with 'archive'.
          Dan Lauterbach <danla@dimensional.com>


DOCUMENTATION:
--------------

Detailed documentation can be found in Pg.pm. Use 'perldoc Pg' after 
installation to read the documentation. 


---------------------------------------------------------------------------

   Edmund Mergl <E.Mergl@bawue.de>                       September 27, 1998

---------------------------------------------------------------------------