postgresql/src/interfaces/perl5
Bruce Momjian f71d0cf64e Attached is a patch to remove the definitions of libpq's internal
structs from libpq-fe.h, as we previously discussed.

There turned out to be sloppy coding practices in more places than
I had realized :-(, but all in all I think it was a well-worth-while
exercise.

I ended up adding several routines to libpq's API in order to respond
to application requirements that were exposed by this work.  I owe the
docs crew updates for libpq.sgml to describe these changes.  I'm way too
tired to work on the docs tonight, however.

This is the last major change I intend to submit for 6.4.  I do want
to see if I can make libpgtcl work with Tcl 8.0 before we go final,
but hopefully that will be a minor bug fix.
1998-09-03 02:10:56 +00:00
..
eg adapted Makefile.PL to be build in source tree 1998-06-01 16:41:27 +00:00
Changes adapted Makefile.PL to be build in source tree 1998-06-01 16:41:27 +00:00
Makefile.PL adapted Makefile.PL to be build in source tree 1998-06-01 16:41:27 +00:00
MANIFEST *** empty log message *** 1997-09-17 20:46:29 +00:00
Pg.pm adapted Makefile.PL to be build in source tree 1998-06-01 16:41:27 +00:00
Pg.xs Attached is a patch to remove the definitions of libpq's internal 1998-09-03 02:10:56 +00:00
README adapted Makefile.PL to be build in source tree 1998-06-01 16:41:27 +00:00
test.pl adapted Makefile.PL to be build in source tree 1998-06-01 16:41:27 +00:00
typemap adapted Makefile.PL to be build in source tree 1998-06-01 16:41:27 +00:00

#-------------------------------------------------------
#
# $Id: README,v 1.7 1998/06/01 16:41:19 mergl Exp $
#
# Copyright (c) 1997, 1998  Edmund Mergl
#
#-------------------------------------------------------

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

This is version 1.7.4 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. 



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 <E.Mergl@bawue.de>

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 Perl 5         (at least 5.002)
  - build, test and install PostgreSQL     (at least 6.3)


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>                            May 28, 1998

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