Join Firebird!

Join Firebird Foundation to support Firebird SQL development and receive multiple bonuses

Follow Us

Select your media preference

Newsletter

Subscribe to Firebird’s Newsletter to receive the latest news

Developer's Report: Firebird Security Design & Enhancements/Core Development
August to November 2010

My "project of the month" this time is definitely the restored OSRI (providers architecture) and a new clear POSIX build for Firebird. These are related features, one could not be done without other, and it was definitely a massive change.

As the result of OSRI we currently have a universal library (called traditionally fbclient), which can load the engine library and, without any other efforts, become the embedded library. The same library is also used by the server to serve remote connections.

New posix build
  • has full support for parallel make (-j switch)
  • does not compile any module more than once (like it was before with different defines)
  • does not need special static binaries (like isql_static), other than gpre_boot
As a result a full FB3 release build on my 4-core AMD box takes just 2.5 minutes (DEV_BUILD is even faster).

It also can (like on Windows) create debug and release binaries at the same time (make Debug/make Release is used), has special tuning for developer mode (./configure --enable-developer) and does not require any changes in Makefile when adding (removing) files to existing projects.

Due to these massive changes, the number of other commits is relatively small:
  1. Fixed CORE-3116: gsec outputs list of users to stderr instead stdout
  2. Fixed CORE-3117: After an error in GDS_CLOSE_BLOB() blob handle becomes invalid
  3. Fixed package version generation for release builds
  4. Make source tarball build cvs/svn independent
  5. Fixed CORE-3143: Segmentation fault may occur when user interrupts gstat
  6. CORE-2639 - Pseudo-table with list of users, available for management to current user
  7. CORE-3185: Firebird compilation on a box, already running firebird server
  8. CORE-3148: Analyzed possible performance drawback of Kovalenko's patch
  9. Fixed performance issues when creating and destroying pools in trunk
  10. Avoid throwing C++ exceptions from authentication plugins
  11. Make fb_string's length limit type-dependent
  12. Fixed CORE-3220: isc_info_svc_get_users returns error message in the result cluster
  13. Fixed CORE-3212: Error compile 2.5 for FreeBSD
  14. Improvement CORE-3248: Set unused bytes of varchar values in message buffer to 0
  15. Fixed CORE-3249: gbak file is not truncated during backup operation
  16. Fixed CORE-3259: Deadlock and sefgault when processing ctrl-C in user code
  17. Fixed CORE-3261: Assertion when running restore service
  18. Fixed posix build in a case when long path is used as $BuildRoot.
Alex Peshkoff
Yaroslavl, Russia
August to November 2010

My "project of the month" this time is definitely the restored OSRI (providers architecture) and a new clear POSIX build for Firebird. These are related features, one could not be done without other, and it was definitely a massive change.

As the result of OSRI we currently have a universal library (called traditionally fbclient), which can load the engine library and, without any other efforts, become the embedded library. The same library is also used by the server to serve remote connections.

New posix build
  • has full support for parallel make (-j switch)
  • does not compile any module more than once (like it was before with different defines)
  • does not need special static binaries (like isql_static), other than gpre_boot
As a result a full FB3 release build on my 4-core AMD box takes just 2.5 minutes (DEV_BUILD is even faster).

It also can (like on Windows) create debug and release binaries at the same time (make Debug/make Release is used), has special tuning for developer mode (./configure --enable-developer) and does not require any changes in Makefile when adding (removing) files to existing projects.

Due to these massive changes, the number of other commits is relatively small:
  1. Fixed CORE-3116: gsec outputs list of users to stderr instead stdout
  2. Fixed CORE-3117: After an error in GDS_CLOSE_BLOB() blob handle becomes invalid
  3. Fixed package version generation for release builds
  4. Make source tarball build cvs/svn independent
  5. Fixed CORE-3143: Segmentation fault may occur when user interrupts gstat
  6. CORE-2639 - Pseudo-table with list of users, available for management to current user
  7. CORE-3185: Firebird compilation on a box, already running firebird server
  8. CORE-3148: Analyzed possible performance drawback of Kovalenko's patch
  9. Fixed performance issues when creating and destroying pools in trunk
  10. Avoid throwing C++ exceptions from authentication plugins
  11. Make fb_string's length limit type-dependent
  12. Fixed CORE-3220: isc_info_svc_get_users returns error message in the result cluster
  13. Fixed CORE-3212: Error compile 2.5 for FreeBSD
  14. Improvement CORE-3248: Set unused bytes of varchar values in message buffer to 0
  15. Fixed CORE-3249: gbak file is not truncated during backup operation
  16. Fixed CORE-3259: Deadlock and sefgault when processing ctrl-C in user code
  17. Fixed CORE-3261: Assertion when running restore service
  18. Fixed posix build in a case when long path is used as $BuildRoot.
Alex Peshkoff
Yaroslavl, Russia