DBD::Ingres -- an Ingres interface for Perl 5 using DBI.
This is the Database Driver for the Ingres family of database products.
It requires Ingres 6.4 or OpenIngres 1.0 or newer,
DBI 1.00 or newer, Perl5.004 or newer.
Note:
There are indications of memory corruption problems with Perl5.005_03.
As of now (1999.05.25) the advice is to use Perl5.005_02.
Copyright (c) 1996,1997 Henrik Tougaard <
[email protected]>
You may distribute under the terms of either the GNU General Public
License or the Artistic License, as specified in the Perl README file.
New features (See the CHANGES file for a complete list):
v0.24 1999.10.29
The "OF column..." part of the "FOR UPDATE" clause is optional.
Clarified the pod (or tried to at least).
This changes the behaviour of the updateable cursor patch added by
Dirk Koopman <
[email protected]> in version 0.19_1. I hope nothing is
seriously broken by this change.
It does seem the best to let cursors be readonly by default and
explicitly change that if you want to update. The update of a cursor
without a "FOR UPDATE OF..." clause is not documented and could
go away at any time.
v0.23 1999.10.28
Now tries to discover whether a select-cursor should be opened READONLY
or not.
A select is opened READONLY unless there is a FOR UPDATE clause in the
select statement. This is done by a regexp in Ingres.pm, which might in
some cases (I just can't imagine which :-) could possibly give a false
positive - which will cause the select to take exclusive locks.
To allow the user to override the automatic readonly discovery is it
possible to write:
$sth = $dbh->prepare("Select....", {ing_readonly => $value});
v0.22 1999.10.26
The 'minor tweaks' to Makefile.PL for building on NT are added, thanks to
[email protected].
This release should build cleanly on NT.
v0.21 1999.09.16
It seems that a statement name can only be 23 characters long in Ingres 6.4
Fixed, thanks to Bruce W. Hoylman <
[email protected]>.
BEFORE BUILDING, TESTING AND INSTALLING this you will need to:
Build, test and install Perl 5.004 (or newer)
It is very important to test it and install it!
Build, test and install the DBI module.
It is very important to test it and install it!
*** DBI must be at least version 1.00 ***
BUILDING
If Perl5 is installed do:
perl Makefile.PL
If Perl5 is NOT installed install it, and come back here later!
Then do:
make
make test
make install
HP-UX users (and others) will have to build perl with static
extensions:
make perl
make test
make inst_perl
See the MakeMaker docs for further: perldoc ExtUtils::MakeMaker
The make test pass will ask for at databasename (if not given in one of
the DBI environment variable (see DBI.pm for particulars). It will then
create a table named 'testhththt' in this database, manipulate it and
delete it again.
It is important for the succes of the test that you have the neccesary
Ingres permissions.
The ingtest.pl script is a "quick" hack of the test for ingperl (the
"old" perl4 interface).
If it fails horribly, see below.
Do NOT hand edit the generated Makefile unless you are completely sure
you understand the implications! Always try to make changes via the
Makefile.PL command line and/or editing the Makefile.PL.
You should never need to make any changes. If you do *please* let me
know so that I can try to make it automatic in a later release.
KNOWN PROBLEMS:
o sometime prepared statements don't work - they either give the
wrong results, or they error out.
The problem seems to have appeared with one of the later patches
to Ingres...
Work-around: reprepare the statement everytime round 8^{
o the arguments to &sql(connect) must be given in the order:
database-name username other-options
otherwise the check for username wil fail.
o Problems have been reported on Digital Unix where the abflnk.opt
files does not include '-ldnet_stub'. This will cause wierd errors
during "make test" - somewhat like:
Can't load './blib/arch/auto/DBD/Ingres/Ingres.so' for module DBD::Ingres:
dlopen: Unresolved symbols at
/usr/local/lib/perl5/alpha-dec_osf/5.00404/DynaLoader.pm line 166.
include '-ldnet_stub' in your abflnk.opt to fix this.
o Lenio Eric <
[email protected]> reports problems using
GNU-ld on SunOS. The problems disappeared when he reverted to
Sun's ld. Message was: "ld.so: Undefined symbol: _IIGCa_static"
o A message somewhat like:
install_driver(Ingres) failed: Can't load '....DBD/Ingres/Ingres.so'
for module DBD::Ingres: dlopen: cannot load ....
usually indicates that the shared Ingres library is not in the
path for shraed libraries given in LD_LIBRARY_PATH
TO DO LIST:
o Add support for OpenIngres long datatypes.
o Add a way to call database procedures.
o Add cached statements
o Track the changes in the DBI spec
o Verify that DBD::Ingres work under Apache::DBI (and make neccesary
changes)
IF YOU HAVE PROBLEMS:
Firstly, check the Frequently Asked Questions, Known Bugs and any other
pertinent documents at:
http://www.symbolstone.org/technology/perl/DBI
If this does *not* resolve your problem, please post details to
[email protected] and CC them to me at
[email protected].
Please include:
1. A complete log of a complete build, e.g.:
perl Makefile.PL -v (do a make realclean first)
make
make test
DBI_TRACE=3 make test
2. Full details of which version of Ingres/esql and Perl you're using.
3. The output of:
perl -e 'use Config; print Config::myconfig()'
4. If you get a core dump, try to include a stack trace from it.
If the stack trace mentions XS_DynaLoader_dl_load_file then rerun
make test after setting the environment variable PERL_DL_DEBUG to 2.
Similarly, get the Devel::CoreStack module and use it.
5. Please don't post problems to comp.lang.perl.misc or perl5-porters.
6. If you are not currently subscribed to the mailing list please
subscribe via
http://www.isc.org/dbi-lists.html
Regards,
Tim, Al & Henrik.
Original document: (c)Tim Bunce <
[email protected]>
Amendments: (c)Alligator Descartes <
[email protected]>
Further amendments: (c)Henrik Tougaard <
[email protected]>