Revision history for Perl extension DBD::Firebird. 1.15 [2013-09-09] * Last release for today :) * do not include fb_init/fb_sem in MANIFEST * remove fb_sem on clean * fix casting to ISC_SHORT/ISC_LONG in ib_fill_isqlda 1.14 [2013-09-09] * skip only fork-based tests, and do that when DBD_FIREBIRD_TEST_SKIP_EVENTS_FORK is present in the environment [dam] 1.13 [2013-09-09] * Bring back 5.8 compatibility [ribasushi] * add small delay before triggering events for ib_wait_event (80-events-ithreads.t) [dam] * skip ib_wait_event tests under AUTOMATED_TESTING [dam] 1.12 [2013-08-15] * use fb_config if available for finding firebird directories * drop usage of bytes_from_utf8 when feeding character data to firebird * Produce sensible POD for DBD::FirebirdEmbedded * Make embedded tests actually run when the libs are there (RT#81621) * Do not package MYMETA * Require Test::Exception that does not break caller() 1.11 [2012-09-25] [Details: https://github.com/mariuz/perl-dbd-firebird/commits/release1.11] * Test::Exception is required add to notes * On freebsd Threaded perl is required you have to re-install perl from ports and you have to select the config option that says 'build a perl with threads' * Test database to use UTF8 charset and enable UTF8 for the connection * Fix CHAR lenght when using multi-byte character set Fixes #32 (RT#76506) * additional debug when finishing already finished statement * avoid double destroying of statement in auto-commit mode with DDL Fixes #30 (RT#72946) 1.00 [2012-04-03] [Details: https://github.com/mariuz/perl-dbd-firebird/commits/release1.00] * t/*event*.t: skip if DBD_FIREBIRD_TEST_SKIP_EVENTS is in the environment * preliminary ISQL-like tool using DBD::Firebird * implement the ParamValues statement attribute * avoid unused return value warning when calling DBIh_EVENT2 * support Microsoft's compiler and other win32 fixes * add Cygwin support * add default FB location on OSX to Makefile.PL * test for RT#72946 (->do segfault with active sth) * Merge pull request #29 from rkitover/master * check_and_set_cached_config: fix when test database is in ./ * Makefile.PL: report '(none)' when some of the firebird directories aren't found * Makefile.PL: avoid adding -I"" to compiler command (closes #31) * #74517: Adding support for Visual Studio 2010 (10.0) and VS 11.0 https://rt.cpan.org/Ticket/Display.html?id=74517 0.91 [2011-11-03] [Details: https://github.com/mariuz/perl-dbd-firebird/commits/release0.91] * fix small typo in Firebird.pm POD * avoid using croak(char*) * fix two cases of format strings != arguments on 32-bit OS 0.90 [2011-11-02] [Details: https://github.com/mariuz/perl-dbd-firebird/commits/release0.90] * Always pass cleanup test and just warn on failure. * fix DBP_FILL_INTEGER * Note other authors in the AUTHORS section * drop inc/ from .gitignore * skip vim swap files * ignore *.bs and *.xsi regardless of the directory * move test routines in a package (TestFirebird) * Build-time generated DBD::FirebirdEmbedded + factor-out most of Makefile.PL in inc/FirebirdMaker.pm + enable FirebirdEmbedded only if libfbembed.so is available + really prevent multiple debugs by dbi_arch_dir + compile embedded dbdimp.c with -DEMBEDDED + t/cleanup: keep the test configuration file + create_test_database: cater for host-less databases (e.g. embedded) + rely on the ib_embedded dbh attribute for embedded detection + remove generated embedded tests on realclean + add test for the ib_embedded dbh attribute + print some info about libfbembed availability + support DBD_FIREBIRD_REQUIRE_EMBEDDED env. variable * create_test_database: set test database forced writes off * drop sleeping in ithreads test * drop use_libfbembed usage * diagnostics on database creation/drop * move decoding of status into ib_error_decode * implement DBD::Firebird->create_database * add DPB_FILL_STRING_LEN macro for when we know the length * use the driver instead of isql for creating the test database * implement DBD::Firebird->gfix * generic create_test_database * check_database: rework without ISQL * add ib_drop_database function * tests: rework database dropping without ISQL * rework tests 92 and 94 without ISQL * build/test without ISQL * db_login6: use determined database length * db_login6: fix dbp ingrements for strings and integers * db_login/charset: copy only SV content * rework populating of DPB * db_login6, gfix: abort if DPB length doesn't match projected * mark all copied/mangled files for embedded as such * add $ENV{CFLAGS} to CCFLAGS * fix a format string warning on 32-bit CPUs * Fix comment about MS platform requirement. * avoid using warn(char*) 0.80 [2011-10-03] [Details: https://github.com/mariuz/perl-dbd-firebird/commits/release0.80] * Reimplement bind_param_array without calling bind_param calling bind_param is not necessary as we ignore $attr anyway it also causes problems when the column has non-NULL constraint this makes bind_param_array work again. Fixes RT 54561 * Append $Config{ccflags} to CCFLAGS This makes it possible for binary distributions to rebuild the module if perl's $Config{ccflags} is changed for whatever reason. Without this appending, binary compatibility can't be guaranteed. http://bugs.debian.org/643038 * Fix test skipping in t/75-utf8t and t/dbi-rowcount.t * Add support for 'gnukfreebsd' platform This is the FreeBSD kernel with GNU userland. For our needs, this is identical to 'freebsd' and 'linux'.Closes Debian bug http://bugs.debian.org/643717 * Define is_ascii_string for perls before 5.12.0 RC1 Fixes #23 * Cleanup temp files at the end of tests. * Client only testing using the interactive test setup. Add host parameter to dns. * Simplified condition to test the DB path. 0.70 [2011-09-26] [Details: https://github.com/mariuz/perl-dbd-firebird/commits/release0.70] * docs cleanup + use standard ROWS alternative to Mysql LIMIT + In firebird 2.5.x standard way is to use sequences + dialects cleanup * tests-setup: avoid passing credentials on the command line * link with libfbembed if given a special environment variable * fix missing database check during tests * t/81-event-fork.t when linked with libfbembed * implement add ib_enable_utf8 dynamic attribute * remove $Id$ markers from CVS/Subversion * add test for RT#55244 * 47-nulls.t: ensure inserting undef in a non-null field fails * fix $dbh->do() and $sth->execute() to properly return the number of affected records 0.60 [2011-09-18] [Details: https://github.com/mariuz/perl-dbd-firebird/commits/release0.60] * Drop support for Firebird 1.0 and earlier * Default dialect set to 3 * Fix ping() for Firebird 2.5+ * fix compiler warnings: + use printf formats matching the arguments + use 0 instead of NULL where an integer is expected + allocate XSQLDA as char array + fix conversion of decimal(x,y) to string * use the decoded milliseconds when formatting times (also fixes a warning) * do not link with libdl.so on linux * fix joined lines in reserved words list * add new keywords for Firebird 2.5 (part of #12) * Removed restrictions on distribution * Readme cleanup * Build system: + Major overhaul by Stefan Suciu + prefer fbsql over isql + look also for isql-fb, used by Debian + add /usr as a possible fb_HOME + skip database tests inless DBI_PASS or ISC_PASSWORD is present + Added isql path to values shown by the script + check if found isql-like executale comes from firebird * Tests + prepend default test database path with localhost: + check database path only if local + bigdecimal.t: use strings to avoid conversion to floats 0.55 [2011-06-24] June 24,2011 - mariuz * added osx patches and various Makefile.PL cleanups June 23,2011 - mariuz+stefan * made it to compile with perl 5.14 (old defines cleanup) * alternative Makefile.PL with no questions asked (with default paths) Jan 21, 2011 - mariuz+stefan * make it work with strawberry perl * cleanup , no support for old compiler bcc and sco * no suport for interbase , we use only firebird Mar 26, 2010 - mjp * Fix corrupted representation of high-scale NUMERIC/DECIMAL values (t/scale.t) (RT#55841) Mar 13, 2010 - mjp * DBI compliance/changes - table_info() accepts specifiers - tables() now returns quotes identifiers - primary_key_info() supported * t/31prepare.t adapt test to modern DBI (RT#53671) * t/62timeout.t work around "object in use" failure on Firebird 2.1 (RT#53904) * Interbase.pm respect and document $ENV{ISC_DATABASE} (RT#53997) * .../InterBase/GetInfo.pm shorten SQL_DRIVER_NAME (RT#53674) * Makefile.PL Allow local, remote and aliased db specifications during build (RT#55530) * InterBase.xs, dbdimp.[ch] Switch to perlclib(1) equivalents of memory and string management functions (addresses RT#49896) Jan 08, 2008 - edpratomo * maintenance release: 0.48 * fixed link problem when using perl-5.6.x (undefined PERL_UNUSED_VAR) * prepare_cached() now works. added t/31prepare.t * some code cleanup (compiler warnings suppressed) * t/81event-fork.t now checks signal availability May 20, 2007 - edpratomo * fixed retval from ib_set_tx * removed debug output from ib_tx_info Oct 25, 2006 - edpratomo * added ib_tx_info() * added t/91txinfo.t * added skip check for t/80event-ithreads.t if Perl version older than 5.8.8 * updated MANIFEST Oct 24, 2006 - edpratomo * fixed some croaks in InterBase.xs * safer t/62timeout.t and t/90dbinfo.t Oct 23, 2006 - edpratomo * added support for wait timeout * added -Wall and some warnings fixes * dbkey_scope defaults to 0. configurable. * added active_tran_count and creation_date req items for ib_database_info() * added tests for ib_database_info() and wait timeout Oct 14, 2006 - edpratomo * applied patches from Michael Moehle for 64 bit platform * added backward compatibility * ib_error_check() reworked, with fb_interpret() Sep 12, 2005 - edpratomo * cleaned warnings when compiled with gcc-4.0 Sep 11, 2005 - edpratomo * removed unused event state * renewed dbd_init(); DBIh_EVENT2 call and DBIS were removed. perl -pi.old -e 's/DBI_TRACE\((\d),\s*?\(DBILOGFP, ("[^"]+".*)\)\);/DBI_TRACE_imp_xxh(imp_xyz, $1, (DBIc_LOGPIO(imp_xyz), $2));/' InterBase.xs dbdimp.c followed by manual tweaking * triggers cleanup in t/8[01]event-*.t Sep 10, 2005 - edpratomo * Updates to documentation regarding bugs, faq, and event * fixed $how_many in t/81event-fork.t * GetInfo.pm was regenerated using easysoft's firebird odbc driver, unixodbc, DBI::DBD::Metadata, and DBD::ODBC, of course * TypeInfo.pm was generated as well, and added to MANIFEST * t/40alltypes.t, t/40datetime.t, t/41numeric.t now use find_new_table() Sep 8, 2005 - edpratomo * FAQ was moved into main documentation, maintaining docs at separate places is difficult * FAQ.pm and Bundle were removed from MANIFEST. Bundle is not necessary. Sep 4, 2005 - edpratomo * fixed segfault when destroying event handles in multithreaded app * increased DBI version in Makefile.PL * added t/80event-ithreads.t, t/81-event-fork.t, uses Test::More * updated documentation Aug 31, 2005 - edpratomo * cleaned warnings about unused variables, different signedness * make it compile with old gcc 2.96 * increased required DBI version - 1.41 Aug 30, 2005 - edpratomo * manually applied patch sf #1042790 by freeduke for dbdimp.c to support InterBase 7. typecasting changes are skipped. * major changes to event API * manually applied patch sf #1068671 by dstreifert Aug 8, 2005 - edpratomo * fixed bug sf #1171702 (memory leak when doing TM type timestamp) Jan 14, 2005 - danielritz * better error handling for blobs * 30insertfetch.t, 40blobs.t with more tests * prevent a possible buffer overflow in date handling * don't accept blob bind param for SELECT statement * remove pointless 'ib_cursorname' attribute. DBD does it automatically Nov 26, 2004 - danielritz * add CLONE() method to support threads * update test scripts for newer DBI Mar 3, 2004 - edpratomo * make bind value with blessed scalar work again Feb 25, 2004 - edpratomo * Fixed memory write error in dbd_db_login6() * update doc Dec 6, 2003 - edpratomo * Makefile.PL now works with remote test db * Added $sth->func('ib_plan') * Updated doc * $sth->execute() now returns correct row count values for non-select stmt Nov 19, 2003 - edpratomo * Fixed bug #844954 Nov 16, 2003 - danielritz * Make it work with Firebird 1.5 May 20, 2003 - edpratomo * Fixed problem in ib_init_event() in filling IB_EVENT->names, caused segfault during destruction. * Added skipping reason in t/60leaks.t July 25, 2002 - danielritz * cleanups, speedups July 18, 2002 - edpratomo * fixes by Sergey Skvortsov: - fix INT64 for FreeBSD - fix for ib_role parsing July 18, 2002 - danielritz * %lld as standard format for INT64 July 8, 2002 - danielritz * numeric fixes for negative values like -0.9 July 1, 2002 - danielritz * trace message can be deactivated June ?, 2002 - danielritz * fixes for ib event * more cleanups, IB5 fixes June ?, 2002 - edpratomo * initial support for ib event May ?, 2002 - danielritz * fix EXECUTE PROCEDURE w/o return values * compile fixes for IB5 * rollback can do isc_rollback_retaining * cleanups April 22, 2002 - danielritz * fix EXECUTE PROCEDURE statments data fetching April 5, 2002 - edpratomo * Switching AutoCommit attribute now also affects active softcommit flags. April 4, 2002 - edpratomo, danielritz * Added ib_softcommit attribute, isc_commit_retaining now needs to be enabled explicitly by users. April 4, 2002 - danielritz * Added set_tx_param() with no param which now resets TPB. April 4, 2002 - edpratomo * Updated t/40cursoron.t, t/70nestedon.t to use ib_softcommit * Makefile.PL code indented properly, now load dbd_dbi_arch_dir() only once, now prompts with directory name, `make clean` cleans trace.txt * Updated documentation in InterBase.pm and FAQ.pm * Changed the semantic of -reserving in set_tx_param(), now uses hashref instead of arrayref. * Fixed warnings when compiled with DBI >= 1.20 * Ilya addressed bug #429820 and some bug in sth_ddl. February 14, 2002 - ilyaverlinsky * fix DATE, TIME, TIMESTAP problem February 8, 2002 - ilyaverlinsky * fix sth_ddl not always being reset February 2, 2002 - danielritz * faster blob write code January 30, 2002 - danielritz * updated numeric handing code * fixed blob code January 29, 2002 * Fixed wrong value stored through bind param if numeric(*, 0) * Added t/41numeric.t for exhaustive test on INT64 type. * Updated version number in FAQ (danielritz) * Change acceptable oldest perl version in InterBase.pm January 28, 2002 * Fixed incorrect precision number in INT64 values and now locale-aware. * changed version number in InterBase.pm * Applied a patch to type_info_all by Christian Lademann * Removed trailing precision if INT64 value is an integer. December 2001, by danielritz * no longer start a default transaction on init * set_tx_param in AutoCommit mode commits any changes, starts a new transcation using updated TPB; all open statement handles are closed! * include Pavel Zheltouhov <pavlo@tvrn.ru> patch for table reservation * only allow to set each param once in set_tx_param * use SvPV_nolen where no len is required in set_tx_param * fix ChopBlanks on Sun Sparc * close all open statment handles on rollback * close all open statements before commit (AutoCommit = 0) * close all open statements before commit if sth_dll > 0 (AutoCommit = 1) * manage statement handles with double linked list * always set imp_dbh->tr = 0L after isc_commit_transcation or isc_rollback_transaction * ib_commit_transaction uses isc_commit_retaining in AutoCommit mode * fix possible buffer overflow in dbd_db_login6 * don't waste some bytes of memory (dbd_db_login6) * fix $dbh->table_info didn't show views correctly * big update in coding style * cleanups November 2001, by danielritz * handle numberic bind params with values such as .7 passed as string * int64 support for microsoft visual c++ * fix: numeric with bind and negative values stored wrong August 1 2001 * fix set_tx_param crashes perl, by danielritz * always rollback open transactions on disconnect (see source), by danielritz July 24 2001 * fix in bind_param for numeric values, by danielritz July 15 2001 * fix repeated execute() in AutoCommit mode, by danielritz July 13 2001 * Fix for compile with ActiveState Build 626+ and BCC, by danielritz * Fix to fetching blob field with zero maximum segment length June 12 2001 * Fixed to buffer overflow in ib_fill_isqlda, by danielritz. * Fixed to problem with DATE and TIMESTAMP fields, by danielritz. June 7 2001 * Added PatchBCC by danielritz * Fixed problem with repeatable use with blob field. May 2 2001 * Fixed memory leak in bind param. April 19 2001 * Fix to dbdimp.h by danielritz. * Nullify var->sqldata and tpb_buffer when cleaning up. April 18 2001 * Now works correctly with negative INT64 values March 24 2001 * Added private method set_tx_param() for controlling transaction parameters (experimental) * More robust execute() * Added more tests * Easier `make test`. Now allows user to specify test database, as well as username, and password to connect. The test database creation is automated, if it doesn't exist. * Clean compile with MSVC. But in Windows, there's bug with BLOB fields. January 22 2001 * Memory leak problem fixed * Added Flemming's submitted patch to zero sqlda before being used. * SQL dialect 1 now can access timestamp field. * Lighter, faster $dbh->ping(). I hope this is more stable, as well. Sept 27 2000 * Replace isc_commit_retaining() with isc_commit_transaction. Flemming suspected this as the source of some deadlock problem. * Fixed dbd_db_rollback(). Now no longer starts a new transaction after rollback. Aug 30 2000 * Patch to DBI.pm of DBI-1.14, fixes a subtle bug of fetchall_arrayref(). The patched DBI allows DBD::InterBase to work with DBIx::Tree 0.91. Cool! * Moving FAQ.pm to InterBase/FAQ.pm Aug 28 2000 * $sth->{NAME} now return column alias, if any. Aug 22 2000 * Fixed _OdbcParse() in InterBase.pm, to connect to remote host incl. Windows. Aug 19 2000 * $sth->rows() now returns the number of fetched rows, for SELECT, otherwise returns - 1 (unknown). Aug 18 2000 * starting a transaction (automatic or not) is more robust, now it reuses an active transaction handle, instead of overridding it with a new one, leaving the previous one "immortal" (because the previous transaction handle is no longer kept!) Aug 16 2000 * Fix $dbh->do() method for usage with placeholders. * Added support for CursorName attrib * more robust commit with AutoCommit on Aug 13 2000 * Added datatype values conversion routine between InterBase internal values and DBI/ISO/ANSI/ODBC values * Fixed tables() method, now correctly removes the trailing blank spaces * Tested to 100% compliant with DBIx::Recordset (0.21)! Aug 12 2000 * more informative error message * fix ping() method. Now not die if RaiseError => 1 July 29 2000 * AutoCommit attribute handling: - in dbd_login6(): simply turns on imp_dbh->init_commit = 1 - in db_STORE_attrib() : if init_commit == 1: if AutoCommit turned On: do nothing. if AutoCommit turned Off: start a new default transaction, stored in imp_dbh->tr if init_commit == 0: if AutoCommit turned On: commit changes. if AutoCommit turned Off: start a new default transaction, stored in imp_dbh->tr Before returning, init_commit is reset to 0. -