DB_File
view release on metacpan or search on metacpan
/*
DB_File.xs -- Perl 5 interface to Berkeley DB
Written by Paul Marquess <pmqs@cpan.org>
All comments/suggestions/problems are welcome
Copyright (c) 1995-2026 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
Changes:
0.1 - Initial Release
0.2 - No longer bombs out if dbopen returns an error.
0.3 - Added some support for multiple btree compares
1.0 - Complete support for multiple callbacks added.
Fixed a problem with pushing a value onto an empty list.
1.01 - Fixed a SunOS core dump problem.
The return value from TIEHASH wasn't set to NULL when
dbopen returned an error.
1.02 - Use ALIAS to define TIEARRAY.
Removed some redundant commented code.
Merged OS2 code into the main distribution.
Allow negative subscripts with RECNO interface.
Changed the default flags to O_CREAT|O_RDWR
1.03 - Added EXISTS
1.04 - fixed a couple of bugs in hash_cb. Patches supplied by
Dave Hammen, hammen@gothamcity.jsc.nasa.gov
1.05 - Added logic to allow prefix & hash types to be specified via
Makefile.PL
1.06 - Minor namespace cleanup: Localized PrintBtree.
1.07 - Fixed bug with RECNO, where bval wasn't defaulting to "\n".
1.08 - No change to DB_File.xs
1.09 - Default mode for dbopen changed to 0666
1.10 - Fixed fd method so that it still returns -1 for
in-memory files when db 1.86 is used.
1.11 - No change to DB_File.xs
1.12 - No change to DB_File.xs
1.13 - Tidied up a few casts.
1.14 - Made it illegal to tie an associative array to a RECNO
database and an ordinary array to a HASH or BTREE database.
1.50 - Make work with both DB 1.x or DB 2.x
1.51 - Fixed a bug in mapping 1.x O_RDONLY flag to 2.x DB_RDONLY equivalent
1.52 - Patch from Gisle Aas <gisle@aas.no> to suppress "use of
undefined value" warning with db_get and db_seq.
1.53 - Added DB_RENUMBER to flags for recno.
1.54 - Fixed bug in the fd method
1.55 - Fix for AIX from Jarkko Hietaniemi
1.56 - No change to DB_File.xs
1.57 - added the #undef op to allow building with Threads support.
1.58 - Fixed a problem with the use of sv_setpvn. When the
size is specified as 0, it does a strlen on the data.
This was ok for DB 1.x, but isn't for DB 2.x.
1.59 - No change to DB_File.xs
1.60 - Some code tidy up
1.61 - added flagSet macro for DB 2.5.x
fixed typo in O_RDONLY test.
1.62 - No change to DB_File.xs
1.63 - Fix to alllow DB 2.6.x to build.
1.64 - Tidied up the 1.x to 2.x flags mapping code.
Added a patch from Mark Kettenis <kettenis@wins.uva.nl>
to fix a flag mapping problem with O_RDONLY on the Hurd
1.65 - Fixed a bug in the PUSH logic.
Added BOOT check that using 2.3.4 or greater
1.66 - Added DBM filter code
1.67 - Backed off the use of newSVpvn.
Fixed DBM Filter code for Perl 5.004.
Fixed a small memory leak in the filter code.
1.68 - fixed backward compatibility bug with R_IAFTER & R_IBEFORE
merged in the 5.005_58 changes
1.69 - fixed a bug in push -- DB_APPEND wasn't working properly.
Fixed the R_SETCURSOR bug introduced in 1.68
Added a new Perl variable $DB_File::db_ver
1.70 - Initialise $DB_File::db_ver and $DB_File::db_version with
GV_ADD|GV_ADDMULT -- bug spotted by Nick Ing-Simmons.
Added a BOOT check to test for equivalent versions of db.h &
libdb.a/so.
1.71 - Support for Berkeley DB version 3.
Support for Berkeley DB 2/3's backward compatibility mode.
Rewrote push
1.72 - No change to DB_File.xs
1.73 - No change to DB_File.xs
1.74 - A call to open needed parenthesised to stop it clashing
with a win32 macro.
Added Perl core patches 7703 & 7801.
1.75 - Fixed Perl core patch 7703.
Added support to allow DB_File to be built with
Berkeley DB 3.2 -- btree_compare, btree_prefix and hash_cb
needed to be changed.
1.76 - No change to DB_File.xs
1.77 - Tidied up a few types used in calling newSVpvn.
1.78 - Core patch 10335, 10372, 10534, 10549, 11051 included.
1.79 - NEXTKEY ignores the input key.
Added lots of casts
1.800 - Moved backward compatibility code into ppport.h.
Use the new constants code.
1.801 - No change to DB_File.xs
1.802 - No change to DB_File.xs
1.803 - FETCH, STORE & DELETE don't map the flags parameter
into the equivalent Berkeley DB function anymore.
1.804 - no change.
1.805 - recursion detection added to the callbacks
Support for 4.1.X added.
Filter code can now cope with read-only $_
1.806 - recursion detection beefed up.
1.807 - no change
1.808 - leak fixed in ParseOpenInfo
1.809 - no change
1.810 - no change
1.811 - no change
1.812 - no change
1.813 - no change
1.814 - no change
1.814 - C++ casting fixes
*/
#define PERL_NO_GET_CONTEXT
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#ifdef _NOT_CORE
# include "ppport.h"
#endif
int DB_File___unused() { return 0; }
/* Mention DB_VERSION_MAJOR_CFG, DB_VERSION_MINOR_CFG, and
DB_VERSION_PATCH_CFG here so that Configure pulls them all in. */
/* Being the Berkeley DB we prefer the <sys/cdefs.h> (which will be
* shortly #included by the <db.h>) __attribute__ to the possibly
* already defined __attribute__, for example by GNUC or by Perl. */
/* #if DB_VERSION_MAJOR_CFG < 2 */
#ifndef DB_VERSION_MAJOR
# undef __attribute__
#endif
#ifdef COMPAT185
# include <db_185.h>
#else
/* Uncomment one of the lines below */
/* See the section "At least one secondary cursor must be specified to DB->join"
in the README file for the circumstances where you need to uncomment one
of the two lines below.
*/
/* #define time_t __time64_t */
/* #define time_t __time32_t */
# include <db.h>
#endif
#ifndef PERL_UNUSED_ARG
# define PERL_UNUSED_ARG(x) ((void)x)
#endif
/* Wall starts with 5.7.x */
( run in 0.880 second using v1.01-cache-2.11-cpan-39bf76dae61 )