Google
 

Tuesday, March 22, 2005

Firebird 2.00 Alpha 01

Firebird 2.00 Alpha 01
21 March 2005

The Firebird Project is pleased to announce the release today of the first Firebird 2.0 public Alpha kits for immediate download and testing.

This version of Firebird 2 is an alpha version, meant for field testing only and not for use in production.
All changes and new features are subject to further change and/or
withdrawal in subsequent alpha and beta releases, leading up to final
release. Do not assume that databases created by or upgraded to the on-disk
structure of this alpha will be upwardly compatible with subsequent test
builds/releases.

Bugs, problems, etc. can be posted to the Field Test bug tracker or
to the Firebird Development List.


This release contains a large number of new features, including
derived tables, support for Execute Block, increased table sizes,
new improved index code (the 252-byte index length limit is no longer
applicable), expression indices, numerous optimiser improvements,
enhanced security features, support for on-line incremental backups
along with numerous other improvements and bug fixes. Please read
the Release Notes for more details.


The following builds are currently available, with others to follow soon:
Win32

21-Mar-2005 Windows Installer for Superserver and Classic (3.0 Mb)

21-Mar-2005 Debug build of the above (5.0 Mb)
21-Mar-2005 Embedded Client/Server (zip file, 1.7 Mb)
21-Mar-2005 Debug build of the above (zip file, 3.6 Mb)
21-Mar-2005 Classic and Superserver debug build (zip file, 8.0 Mb)


Linux i686

20-Mar-2005 Linux Classic RPM Installer (2.9 Mb)
20-Mar-2005 Linux Classic, tarball with scripts (2.9 Mb)
20-Mar-2005 Linux Classic debug build, tarball with scripts (18.9 Mb)


Feedback, input and comments re this release will be appreciated, as they will help to speed up the cycle for the full Firebird 2.0 release.



Happy testing!

-- Firebird Project

Monday, March 21, 2005

Praise for Firebird Relational Database

>From: WebHub Technical Support
>Subject: [WebHub-list] off-topic: praise for Firebird Relational Database
>
>"Interbase Deleted, Firebird Installed... Existing Apps Work without Effort"
>
>This is one of those rare stories where software works perfectly, the way
>it should. It's possibly relevant to people on this list so I'll give you
>some details.
>
>I started with a machine running WinNT 4, Interbase (June 2000), 1 WH app
>using a .gdb, 1 other Delphi app using a .gdb. (all on same machine)
>
>I backed up the server. You would have too, if you knew what was planned.
>
>I shut down the apps. I stopped IIS.
>
>I tried to uninstall Interbase but the uninstaller failed, so I stopped
>Interbase in Control Panel > Services, then deleted c:\Program
>Files\Borland\Interbase\*.*.
>
>I found the Firebird 1.5 stable installer here:
>http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_download_15 ,
>specifically
>
> 25th Dec 2004
> Official
> Windows Setup and Installer For Classic and SuperServer V1.5.2 (.exe) (2.7mb)
> which leads to
>
>http://prdownloads.sourceforge.net/firebird/Firebird-1.5.2.4731-Win32.exe
>
>I ran the installer. Of course I forgot whether I was supposed to choose
>Classic or SuperServer. I found this page
>http://www.firebirdsql.org/manual/qsg15-classic-or-super.html and decided
>on Superserver. NOTE SUPERSERVER IS THE DEFAULT RADIO BUTTON CHOICE. I
>find it easy to remember "use the defaults" ... hint.
>
>I used all the defaults for installation, aside from the folder location
>(used d: ... not c: ...).
>
>The install finished with no errors. I checked Services and Firebird was
>running. So far so good.
>
>I tested the WH app, it worked, no complaints. (Thanks to the TurboPress
>developers for that part.)
>
>I rebooted the machine, it restarted everything including the WebHub App
>and the Delphi app, and BOTH WORKED without any reconfiguration of any sort.
>
>I was so pleased I had to tell you. Best of luck to anyone who tries this
>at home.
>
>Cheers,
>Ann
>

Saturday, March 19, 2005

Delphi.NET Running on .NET Compact Frameworks

From Seppy's investigations so far, it's looking very likely that all of the Delphi for .NET language support will work in CF without major modification. He's got the core RTL up and running and is working on fleshing out the rough spots. Using the Delphi language to build WinForms apps on CF is a sure thing.

Read more @

Delphi Compiler Core

Friday, March 18, 2005

Firebird 2 alpha release notes NEW LINK

I hope some of the international language test group coordinators are watching this and can update their links to the Alpha release notes. The link is now

http://xrl.us/fgnj

In case anyone reading this is on the translator team for release notes, please contact me if you are ready to receive the source.

regards
Helen

Improving Query Performance through Index Selectivity

The Firebird query optimizer uses index "selectivity" or "statistics" for selecting the most effective query execution plan.

Read more

Wednesday, March 16, 2005

Paul Pimblott on JediVCS...

I am a newcomer to JEDI VSC, but have used both sourcesave and more recently
CVS. So far, JEDI is superior in all aspects....

I do have a coupe of questions:

1. I have a project checked in which comprises several folders. When I use
the Source Distribution option, the zip file is not created unless I exclude
the sub folders. Any ideas anyone?

2. Is there an easy way of indicating which modules have been changed on the
main window?

Wonderful software.....

Thanks

Paul

JEDI.NET 1.0 alpha 1 has been released

JEDI.NET 1.0 alpha 1 has been released and can be downloaded from:
http://sourceforge.net/project/showfiles.php?group_id=111655&package_id=147053&release_id=312857.

Besides a source release (containing all sources for the
assemblies, examples and nunit tests) a binary only release is available as well (build against .NET 1.1 and Delphi 2005 update 1; for non-Delphi 2005 owners the Borland.Delphi assembly can be downloaded from http://prdownloads.sourceforge.net/jedidotnet/Borland.Delph_2k5-SP1.zip?download; you'll need to install it into the GAC or put it in the main/bin and main/examples/bin folders).

In addition, two help files are available, one as a .chm file and
one in Help2 format. You can also browse the help on line at http://jedidotnet.sourceforge.net/help/index.html.

IBExpert Version 2005.03.16

IBExpert Version 2005.03.16 FULL is available for download.

Now supports many Firebird 2 features
Increased speed of Script Executive and Table Data Comparer
New IBEBlock commands

FastReport 3.11

FastReport 3.11
03/14/2005

+ added Greek resources
+ added HTML tags support in PDF export
+ added Hebrew, Turkish and Arabic languages in the PDF export filter
+ added property TfrxPDFExport.Background (default = False)
+ added properties TfrxRTFExport.Creator and TfrxPDFExport.Creator
+ improved quality of the PDF export filter
+ password protected reports is now working in client/server mode
(IMPORTANT: Do not use this feature in one time with the server authentification)
+ verbose output of the server errors in the HTML mode
- fixed name of the properties TfrxServerConnection.Proxy and TfrxServerConnection.ProxyPort
(press 'ignore' button on load prompt in yours projects for autofix form components)
- fixed clean of the report cache on TfrxReportServer.Stop method
- fixed background draw in HTML export filter in server mode
- many bug fixes
Download...

Tuesday, March 15, 2005

SQLDirect Component Library V4.2.1

SQLDirect Component Library V4.2.1 is now available.

IBReplicator V2.1.1available

IBReplicator V2.1.1 is available for download. This release fixes a problem where reloading the configuration database can cause unpredictable behaviour for the event listener.

InterBase/Firebird DB Comparer V1.3

EMS announce the availability of V1.3 of their InterBase/Firebird DB Comparer.

Key open-source programming tool due for overhaul

The entire realm of open-source software could get a performance boost if all goes well with a plan to overhaul a crucial programming tool called GCC.

Almost all open-source software is built with GCC, a compiler that converts a program's source code--the commands written by humans in high-level languages such as C--into the binary instructions a computer understands. The forthcoming GCC 4.0 includes a new foundation that will allow that translation to become more sophisticated, said Mark Mitchell, the GCC 4 release manager and "chief sourcerer" of a small company called CodeSourcery.

"The primary purpose of 4.0 was to build an optimization infrastructure that would allow the compiler to generate much better code," Mitchell said.

Read more

ASP.NET with Mono's XSP and Apache

The second article in a series of articles about Mono. This article explains how to host and serve ASP.NET Web Applications and Web Services on Linux using XSP and Apache with the help of Mono.

Monday, March 14, 2005

IBExpert Version 2005.03.12 available

IBExpert Version 2005.03.12 FULL is available for download.

kbmMW v. 2.50.00 All Editions - Beta 4 released!

2.50.00

New stuff
=========
- 4 SKUs introduced: Standard, Pro, ProPlus and Enterprise.
- D2005 Win32 support.
- D2005 dotNet support.
- Indy 10 support
- SDAC 3 database adapter support. (Pro/Pro+/Ent)
- Added Native DB adapter. (Pro/Pro+/Ent)
- PostgreSQLDAC database adapter support. (Pro/Pro+/Ent)
- Loadbalancer teaching/learning added. (Pro+/Ent)
- Server announcement to loadbalancers added. (Pro+/Ent)
- Added support for bracket handling of tablenames/fieldnames. (Pro/Pro+/Ent)
- Removed old ConnectionString editor, and replaced with group
and array capable stringlist editor.
- Added support for statistics via Windows Performance Monitor (Ent)
- Added TkbmMWLocalStats component for local statistics support (Pro/Pro+/Ent)
- Added statistics support on transports and connection pools in
addition to the server and service level stats. (Pro+/Ent)
- Added OnMessageToSpoke event to have very fine runtime control of
message distribution in hub/spoke transports. (Pro+/Ent)
- Added OnMacro event to connection pools. Allow for adding macro (Pro/Pro+/Ent)
functions and other automated
- Added TkbmMWCustomServerThreadPoolTransport from which SAF (Pro+/Ent)
transports inherits.
- Added PoolSize property on messaging transports for control
of how many threads are running to handle request/response scenarios. (Pro+/Ent)
- Added internal transactional support on message queues. (Pro+/Ent)
- Added optional rejection queues on message queues.
- Added required registration of transport info classes.
- Added streaming capabilities to transport info instances.
- Added/updated TkbmMWFileStoreMessageQueue. (Ent)
- Added support for ftLargeInt parameter types.
- Added additional transport stream level security options.
- Added doubly linked list class.

Changes/minor additions
=======================
- Updated transport streams, server and client to provide better check for stream version.
- Transports split up in client part, server part and common part.
- Enhanced TkbmMWStringList to support grouping of strings.
- Updated client code to gracefully handle loadbalancing/failover while operating as a spoke.
- Updated HTTP transport stream format to support HTTP v. 1.1 and
support HTTP proxy basic authentication.
- Updated DBISAM4 adapter to also compile with DBISAM v. 4.09 or newer.
- Changed object streaming to not require definition of static or dynamic variant object type.
- Published ConnectionPool property on all client datasets.

Fixes
=====
- Removed lots of hints and warnings.
- Changed loadbalancer list locking while probing servers to be very shortlived.
- Fixed OnResolve firing twice bug.
- Fixed ADOX field origins bug.
- Fixed OnGarbageCollect event bug.
- Fixed NexusDB v2 NULL handling.
- Fixed statehandling bug.
- Fixed CreateParams.
- Fixed threading bug in ISAPI server side transport.
- Fixed Kylix3 support.
- Fixed Synapse transport bugs related to not raising exceptions when occuring.

This list is not complete. Many more subtle changes and refactorings has happened internally.


--

best regards
Kim Madsen

Saturday, March 12, 2005

Delphi 2005 Update 2 is available for download

Well over 200 bugs have been fixed in this free update for Delphi 2005. Download it now!

Friday, March 11, 2005

Unicode SynEdit

Features of actual version

  • Unicode support for Windows&Linux without depending on any additional library or component package.
  • Added new unit SynUnicode that contains Unicode versions of often used string-functions.
    It's TWideStrings & TWideStringsList-classes were taken from JCL, adapted and cleansed to be cross-plattform and less code-bloating.
  • Optional symbiosis with often used libraries like JclUnicode or TntUnicode-controls through compiler directives. (see SynEdit.inc)
    JclUnicode can be interesting if you want advanced features that are Windows-dependent but adds 140KB to exe-size.
    TntUnicode-controls provide Unicode-property-editors at design-time at no cost but must be installed(= available), so it is not used by default.
  • Support of Unicode on Win9X.
  • All Highlighters were translated. (They use now collision free hashing)
  • All additional SynEdit components are unicode-enabled.
  • Storing files as UTF-8, UTF-16 or Ansi.

Known Issues

  • Wide glyphs (usually double of latin glyphs) like in Chinese don't render correctly.
  • This is not really a SynEdit issue: The TeX-Exporter doesn't support Unicode as LaTeX2e doesn't support it either.
    There are many half-backed solutions but none offers real Unicode support. LaTeX 3 is said to support this (whenever it is released). Note: RTF and HTML exporters fully support Unicode.

What's new?

  • All Demos were ported to work with UniSynEdit.
  • SynGen now creates highlighters compatible with UniSynEdit and was enhanced to support collision free hashing and better FuncXXX naming (now is derived from the keyword instead of the key).
  • All fixes from ANSI version were applied.
  • All other fixes for Unicode SynEdit are included as well, for details see CVS log.
  • Some fixes to SynGen
Read more

Delphi Language Progression

In non-tech, we are having an interesting discussion about the evolution of the Delphi language. Someone there is arguing that Delphi isn't evolving fast enough for him -- that's cool, to each his own -- but he's also arguing that it isn't really evolving at all, and that C++ is evolving faster. Now that is ridiculous. As part of the discussion, we've made a list of the language innovations, additions, and evolutions since the TurboPascal days. Here's the list so far:

implements
Inline methods
Class vars
Class constructors
properties
exceptions
interfaces
dynamic arrays
large strings
Records with Methods
Nested Class
Attributes
Multi-cast Events
Boxing
Strings
for...in
Class Methods
operator overloading
class helpers
virtual constructors
Compiler directive variables
(Items from here down were added after the orignal post)
Packages
Method Overloading
Default Parameters
Unicode Identifiers
threadvar
RTTI on interfaces
Default parameters.
64-bit integer type.
32-bit unsigned integer type.

Did I miss anything?

Anyone have a similar list for C\C++? I think it would be a much shorter list.

Thanks to the folks in non-tech who have helped make this list longer than it was.

Read comments on Nick's Blog

DUnit 9.2.0 released!

DUnit automates unit testing of Delphi code. The target audience for DUnit is developers who are both writing the code to be tested and the unit tests for that code, an approach advocated by Extreme Programming. Dunit is based on the product JUnit.

Download

Fulltext Search for Firebird SQL (CodeProject Article)

Fulltext Search for Firebird SQL article on Code Project
(spoted on dotnetfirebird.org)
"In this article, we will talk about searching the data in a Firebird database using DotLucene full-text search engine. We will focus on storing the index directly in the database"
http://www.codeproject.com/useritems/FulltextFirebird.asp

Thursday, March 10, 2005

Delphi Configuration Manager Version 2 is now available!

Here is a list including some of the changes made:

  1. Modification of Component Packages, Assemblies and Experts to be setup with particular configuration. [ adding assemblies is not supported and will be coming in an update ]
  2. Import / Export of configurations in REG format.
  3. [Bug] Fix to bug where running a Delphi config causes DCM to wait until Delphi has been closed (this is already fixed)
  4. [Bug] Issue with spaces in configuration names (fixed)
  5. [Major] Copy current IDE settings to the new configuration (allowing certain keys to be confirmed prior to copying).
  6. Check for new versions being available.
  7. Keep registry settings under one key. Thanks to Ralf for the tip.
  8. Tighten up the naming of new configurations
  9. InstallAware used for the installation. A special thanks to Sinan for answering my questions. It's a breeze to use and with the new version just released, it's well worth a look!
  10. [Bug] Configuration Launcher now works properly.
  11. Implement Configuration Cloning. [ feature also available in IDE Addin ]
  12. Add Upgrade support for users of previous version. (Version 1.6 only supported for upgrades).
  13. Added options dialog for Delphi Configuration Manager. [ more options will come in an update ]
  14. Added an options dialog for Configurations that allows you to modify some options for your IDE that aren't surfaced in the IDE user interface. [ more options will come in an update ]
  15. Further improvements made to enhance the Large Font users experience.
  16. [Bugs] Couple of bugs address around the installation of the IDE AddIn.
  17. Improve error handling when reading from the XML data files.
  18. Only display installed Delphi versions in the Version drop down on the Add Config dialog.
  19. Don't allow the user to exit the Add Config dialog without either filling out all fields appropriately, or selecting cancel.
  20. Created a Help File*

To download the latest version click here.

IDC reports new DB market statistics

IDC reports that the market for relational databases grew 12% to $15 billion in 2004. Oracle holds 41%, DB2 holds 30% and SQLServer holds 13% (measuring by value). The report says that Oracle, IBM, and Microsoft are looking for new ways to compete in the market for small and midsize business and departmental systems, one of the fastest-growing areas of the database market. Hey, that is our market too...
Read more

Tuesday, March 08, 2005

Firebird 2.0 Call for Testers on IBPhoenix

My translation to Bosnian language, together with some other translations, appeared on IBPhoenix...
There are links to Russian, Bosnian, French, Br-Portuguese

Friday, March 04, 2005

Choosing the right open-source DB

eWeek's pundits discuss which open source database to choose. About Firebird they say: "Sizzling transactional performance, ease of installation, enterprise-class features (triggers, views, stored procedures)." But also: "No enterprise-level support, but very good, knowledgeable community support." You can listen to a 1 hour session discussing these slides via this link.

Read more

--- Firebird 2.0 Call for testers letter v1.1 BOSNIAN ---

I have translated Call for testers letter to Bosnian language.
Also, I have translated files needed for InnoSetup and mailed them to Paul Reeves.
I hope they will be included in Alpha 1...

Fikret

--- Firebird 2.0 Call for testers letter v1.1 ---

The Firebird Project will soon be releasing the first public "alpha"
release of Firebird 2.0. Version 2.0 is a long-awaited important major
release of Firebird with many new features, enhancements and
bugfixes (see alpha Release Notes
http://firebird.sourceforge.net/download/prerelease/rnotes0200_01.zip
for details). In number of changes, the jump in this release is equivalent
if not greater than the transition from version 1.0 to version 1.5.

You know that we care about quality, and that we will not release the
final version 2.0 until it meets our strict QA requirements. For version
1.5, it took about a year before we were satisfied. But this time we are
in a slightly different situation.

The Vulcan project reached the *general usability milestone*, with only
a few loose ends left, and we would like to merge both codebases as
soon as possible. This merge should result in Firebird 3.0 with full
SMP support, unified architecture (no more separate
classic/superserver/embedded builds) and other enhancements (see
http://www.ibphoenix.com/downloads/VulcanOverview.pdf for details).
Beside clear benefits for Firebird users, this merge will result in
cleaner and concise architecture and codebase, and will complete our
transition from old procedural C code to fully OOP C++ code. This will
open gates for developers to design and implement more complex features
like namespaces, temporary tables and other much requested features.

But we can't fully focus on the Firebird/Vulcan merge before the final
Firebird 2.0 is released, hence we would like to shorten the QA phase
as much as possible, but without compromising our strict quality
requirements for final release. We *can* do that by making our QA
process more effective. The effectiveness of the Firebird QA process
heavily depends on feedback from end users, so it's natural for our
quest for more effective QA to start with it.

So far, user feedback was random and fully in the hands of end users.
Basically, we would release a build, wait for feedback for some time
and solve the reported issues (along with other issues we did find
internally over that period). If no important issues were
found/reported since the last Release Candidate build, that build was
repackaged as final. Of course, there are also alpha and beta stages
that follow this pattern too, but differ in what developers are
allowed to change in the ncode.

While this routine has worked nicely for us in the past, it has an
important drawback: We don't know how much the build is tested in
field, in both scale and functionality coverage. We can only guess
approximate figures based on download count, direct feedback, hearsay,
development stage etc. to estimate the "quality index". We also have
only one gauge to work with: time, hence the long release cycle.

To improve on that, we would like to initiate a managed field-tests
program, starting from Firebird 2.0. This managed field-test *will
not* replace the *usual* field-test scenario (or internal testing),
but should work as a complement to other QA routines we use. The
objective of managed field-test is to collect precise information
about field-test (i.e. how the released build was tested and with what
outcome), so we can better estimate the outcome of the QA process,
focus on open gaps in QA and thus allocate our QA resources more
precisely, so eventually we would build our trust in quality of code
more quickly.

The participation in managed field-test is very simple. You need to
sign-in by e-mail to , where you'll describe
how you would like to test our releases. We prefer any testing method
that is close to real use. This means that if you have an application
that runs with Firebird, you can simply take it on a "test drive" with
the new Firebird release in some testing environment, preferably with
real-world data. Of course, you can pick up any testing method you
like, and you can even focus only on a particular area you're most
interested in (for example performance, backup/restore, new features,
optimizer etc.). You must also describe what Firebird flavour(s)
(CS/SS/Embedded) and platform(s) you want to test. We will send you a
notification whenever a new filed-test build is available, and we will
expect a report from you about the outcome (either good or bad) of
your tests.

We know that such commitment may not be easy to fulfil, so it's
possible that you may skip testing of the field-test release or leave
the program altogether at any point, so we will reward those who help
us! We have created a "prize pool" that right now contains a Firebird
T/polo-shirt in color and shape of your choice from IBPhoenix, but we
believe that we'll get more prizes into this pool before Firebird 2.0
final release. At the end of the release cycle, we will reward the
most "active" tester(s) and one randomly selected tester.

The managed field-test program is open to anyone, at any time point in
the release cycle (starting from fist alpha till last RC), but those who
sign-in early will have better chance to get a reward for their help.

Pavel Cisar
Firebird Project QA Division

Tuesday, March 01, 2005

SQL# For GTK# 0.2 released

take a look at screenshot (looks familiar ?)

http://xrl.us/fams (Link to ftp.novell.com)

the rest of article

http://xrl.us/famu (Link to www.mfconsulting.com)

IBPhoenix got competition

Single Source Support For Top Leading Open Source RDMBS - MySQL, Firebird SQL and PostgreSQL.

(PRLEAP.COM) Cambridge, MA Feburary 16, 2005 - Advent Consulting - a leading open source technology consulting firm today announced enhanced managed support program for MySQL, Firebird SQL and PostgreSQL.

"We recognize the value that the Open Source database community brings." Said David Lee, CEO of Advent Consulting. "With the strength of MySQL, Firebird SQL and PostgreSQL database deployments in the enterprise and of the greater open source movement as a whole, Advent Consulting is addressing the growing demand for open source database supports with a single source, traditional proprietary methods of escalating professional support services for all three leading open source database."

"Our goal is to provide the best out of open source database solutions to our clients with greater confidence. With this program, the database administrator (DBA) and developer can easily and productively escalating support for their open source (RDBMS) on MySQL, Firebird SQL and PostgreSQL from one convenient source." said Mr. Lee.

Subscriptions plan will be available for a range of required service levels - from basic system updates with automatic escalation procedures, to 24/7 live production support with remote administration on both Linux and Windows environments.

Other open source database services includes: database migration, custom development, database optimization and tuning.

Advent Consulting has been a Firebird SQL foundation member and sponsor, MySQL devconnect consulting partner, as well with extensive successful experience with PostgreSQL consulting & implementation.

About Advent Consulting

Advent Consulting is an independent, open-source strategy consulting firm that provides best-of-breed, totally integrated open source and Linux solutions for delivering cost savings, stability and performance required for companies embracing open source technology.

The professionals at Advent Consulting provide a range of services and supports necessary for organizations to leverage the benefits of open source software including consulting, research, migration, integration, customized development and support.

To learn more about Advent Consulting’s focus, philosophy and open source solution offerings, visit http://www.adventconsultants.com
###

OPEN SOURCE DATABASE SOFTWARE COMPARISON

This is a comparison between free open-source database software solutions actually avalaible. I want to thanks all the sofware developers for developing such a great software for the open source community.


MySQL

PostgreSQL

MaxDB

Firebird

Ingres
Version

Mysql-4.1.x

PostgreSQL 8.x

MaxDB Version 7.5

Firebird 1.5.x (Roadmap)

Ingres R3

Read more

Firebird second in Brazil (Oracle10g is 1rst)

Info OnLine, a leading IT magazine in Brazil found Firebird the second (translated from Portuguese) most popular database after Oracle

Sunday, February 27, 2005

The boon of FireBird for "Edge" development

Researcher finds strong uptick in open source DB use

The boon of FireBird for "Edge" development -- Aside from the traditional names of MySQL and PostgreSQL, Evans also found the FireBird open source databases making some inroads -- particularly in the "edge" sector of networking. Evans found FireBird is the most used database period for 'edge' applications, Microsoft Access is a close second (at 21 percent). In addition, MySQL and FireBird are locked in a virtual tie in the open source database space with each being used by just over half of database developers who use open source databases.

All these factors are providing the DBA/developer all sorts of "prime opportunities" to further push open source into the enterprise, McKendrick added:

"Right now, if a developer wants to put together some type of project, and can't get the CIO to authorize the funding, he can now simply download a free database and build an enterprise-caliber project based on this database," he said. In fact, McKendrick added, the increase in open source database capabilities is more than sufficient for most enterprise projects -- and won't get that developer in trouble.

Read more @ IT Manager's Journal

Jim Starkey's Thoughts on DDL

The original data definition mechanism was direct update of system
tables. This proved both scary and awkward, and a BLR-ish DYN layer was
added. When DSQL was extended to include SQL DDL, the DSQL, originally
in the client, later moved to the Y-valve, translated the SQL DLL into
dyn for interpretation. This means that for every new DDL clause we
invent, it must be added to DSQL, DYN, and the DYN interpreter.

Vulcan has move DSQL from the Y-valve to the engine. I think it's time
to stop translating SQL DDL into DYN and go directly to changes in the
internal metadata and system tables, gradually replacing much or most of
MET. This will relegate DYN to a legacy service that we can allow to
whither and die as the remaining parts of the tool set learn to express
DDL in SQL.

If we can reach agreement on this process, I suggest that proposals to
extend SQL DDL be considered this light. Doing them in the current
architecture of either Firebird or Vulcan will require about twice as
much work to go through DYN than direct handling of SQL DDL, and
probably two thirds of it will be wasted in the long run. I would
rather see work invested in revising the internals to make extensions
easier and cleaner than spent on extensions that can only be considered
throwaways in an environment we know is life limited.

--

Jim Starkey
Netfrastructure, Inc.
978 526-1376

Where's My Delphi for .NET Compact Framework?

“I want to write PDA apps using Delphi and the .NET Compact Framework. Yet Borland still doesn't support this. Why not?“

Read more @ Delphi Compiler Core

FastCode Awards

Borland is pleased to recognize John O'Harrow and Dennis Christensen as the top contributors to the Delphi FastCode Project in 2004. Each will receive a copy of Delphi 2005 Architect edition as a token of Borland's appreciation for their efforts and energy.

The FastCode Project sets up challenges for folks to write replacement routines for the Delphi RTL with better performance than the stock routines. When the results of these challenges significantly outpace the stock routines (and don't sacrifice hardware compatibility), we make an effort to incorporate the best routines into the core Delphi RTL. Delphi 2005 contains 3 or 4 RTL routines that were reoptimized by FastCode competitions.

Congratulations John and Dennis!

Firebird ADO.NET Data Provider 1.7 RC2

The Firebird ADO.NET Data Provider 1.7 Release Candidate 2 is available
for download.

* Download information can be found here:

http://firebird.sourceforge.net/index.php?op=files&id=netprovider

* Release Notes can be found here:

http://sourceforge.net/project/shownotes.php?release_id=308369



CVS Tag: NP_17_RC2

InterBase/FireBird Manager V3.9

EMS announces the availability of InterBase/FireBird Manager V3.9 with full support for InterBase V7.5 and Firebird V1.5.

Open Source Database Market Share Breakdown

Evans Data revealed the results of a a study on open source databases. While the familiar names MySQL and PostgresSQL were in there, the biggest surprise may be that Firebird was nearly tied for the most used open source database.

Here are the rankings found in Evans' Database Development Survey 2005, Winter:

MySQL -- 53%
Firebird -- 52%
PostgresSQL -- 15%
Berkeley DB -- 4%
GNU SQL -- 3%
SAP DB -- 1%
Other -- 6%

Some survey respondents are using use more than one open source database, thus the total exceeds 100%.

Friday, February 25, 2005

Delphi 2005 Update 2 On The Way

In the Borland.public.delphi.non-technical newsgroup, Danny Thorpe posted this:

Update 2 is in the pipe moving towards production. It'll be going through regression testing for a couple of weeks yet. Hopefully nothing will explode and require a restart. Pipeline stalls really hurt the schedule.

interview with Danny Thorpe (Borland Chief Scientist)

Published interview with Danny Thorpe (Borland Chief Scientist) - on The Server Side

Borland Chief Scientist Danny Thorpe talks about the challenges of moving the Delphi language to .NET, working with Microsoft on the .NET Framework, and also gives his thoughts about what improvements he'd like to see in the .NET Framework.

Monday, February 21, 2005

Multiversion Concurrency Control Before InterBase?

From Craig Stuntz's Weblog:



Multiversion Concurrency Control In Computing Literature Before InterBase

Multiversion concurrency control is described in some detail 4.3 and 5.5 of this paper by Philip Bernstein and Nathan Goodman -- then employed by the Computer Corporation of America. [Note: An ACM Portal subscription is required to read the full text of the paper.] Bernstein and Goodman's paper cites a 1978 dissertation by D.P. Reed which quite clearly describes MVCC and claims it as an original work. Reed's paper is cited by 66 other authors, according to the Guide to Computing Literature, and Bernstein and Goodman's, 180 times.

Object lifetime in Firebird

From Jim Starkey:

Object lifetime is one of the two or three major strategic questions in
the merge between Firebird 2 and Vulcan. Almost all objects in Firebird
2 are deleted by pool deletion. To make this work, every resource
controlled by an object subject to delete-by-pool must also be pool
aware and allocated from the same pool. This makes writing object code
in Firebird difficult, time consuming, and fragile. It also makes
adoption of non-pool aware classes problematical at best. Vulcan still
has much of his code, but all new classes respect standard object
lifetime conventions, and none are "pool aware".

A question facing the project is whether or not we should accept object
oriented technology into our database implementation. If the answer is
yes, then I believe we must respect the integrity of objects and observe
individual object lifetime controls. This necessarily involves
rejection of the concept of delete-by-pool purposes other than
exceptional, localized mechanisms.

So where you and many other developers may say "of course, that's the
way objects work", in fact, that isn't the way Firebird 2 and
predecessors work.

I am arguing that post-merge object integrity be respected, a
pre-condition for adaptation of object technology. I am also arguing
that it is no longer necessary for all Firebird classes to be pool aware
and, in fact, most classes will not be. These questions seep into
almost every line of code in the prodct. I believe it better that we
resolve this question abstractly than as a debating point in the
general merge debate.

In my mind, the key technical questions around the merge are:

1. Object integrity (also known as delete-by-pool), including
obligatory pool awareness
2. The provider architecture
3. Object structured vs. flat configuration files
4. Thread synchronization primitives
5. The division of work between the Y-valve and the providers
6. Exception handling

Jim Starkey

>Jim:
>When you relate ancient computer history I always wonder:
>How old are you?
>
>
>
I was born in 1949. I started programming when I was about 15 at a
technical institute that offer a weekend course in Fortran for high
school kiddies. I designed my first language about a year later, a
simulated machine language, assembler, and job control language, in IBM
1620 assember. I converted it first to an IBM 7040 then the 360 (DOS),
all in assembler. During college I worked summers programming for a TV
rating company. After college (1973), I went to work for a company
building a database computer for the ARPAnet. A couple of years later I
went to DEC to write relational database system, or so I thought. After
a bait-and-switch, I worked on a conversion of IDMS to the PDP-11.
Escaping that, I wrote Datatrieve-11 for the PDP-11, then VAX
Datatrieve. I started and spun off the VAX Common Data Dictionary
(fellow is now a senior member of Microsoft SQLServer group) and the Rdb
project. When the latter ran into trouble, I started what eventually
became Rdb/ELN (ostensibly as an engine for a natural language query
system during a flirtation with AI), which kicked off the Great Database
War. I started Interbase in 1984. I have a wife Ann, who is a nice
person and thinks I should be one, too, a cat Perry and a Portuguese
Water Dog named Wyrly. Anything else you want to know?

--

Jim Starkey
Netfrastructure, Inc.
978 526-1376

Providing Database Encryption as a Scalable Enterprise Infrastructure Service - Protecting Against External and Internal Threats

As databases become networked in more complex multi-tiered applications, their vulnerability to external attack grows. We address scalability as a particularly vital problem and propose alternative solutions for data encryption as an enterprise IT infrastructure component. In this paper, we explore a new approach for data privacy and security in which a security administrator protecting privacy at the level of individual fields and records, and providing seamless mechanisms to create, store, and securely access databases.

Download the paper in PDF format here.

Source: http://www.net-security.org/article.php?id=768

Friday, February 18, 2005

Delphi 1.0 shipped with a 16bit version of InterBase embodied in a dll (the first embedded version)

It brings back many memories, Delphi 1.0 shipped with a 16bit version of InterBase embodied in a dll (the first embedded version) and was freely deployable, the port was originally done by Jim Starkey.

KylixDriver version 3.1 released

Bug-fixes:

CardBuilder: Urgent bug fix - Kylix IDE was hanged on a card component destruction while CardBuilder design window was existing (fixed-time improvements always do ill turn).

ETSoft Tenzor.Net

Thursday, February 17, 2005

IBExpert 2005.02.14

A new version of IBExpert (2005.02.14) is available.

FBCopy, a command-line tool that can copy data between Firebird tables and databases

Milan Babuskov announces the availability of FBCopy, a command-line tool that can copy data between Firebird tables and databases. This utility is available for Windows and Linux.

Nagios plugin for Firebird

Milan Babuskov of FBExport, announces the availability of a Nagios plugin for Firebird. Nagios is an open source host, service and network monitoring program that can monitor multiple servers for availability, hard disk usage, CPU load, etc. More details about Nagios can be found at www.nagios.org.

Tuesday, February 15, 2005

Exclusive Interview with Anders Hejlsberg: Getting Reacquainted with the Father of C#

"...
.NETDJ:
Between now and the last time we spoke, Borland has entered the .NET space. As an ex-Borland employee who is now one of the most revered .NET icons, what are your thoughts on this?


AH:
I'm very excited that they are doing that! It is the right thing for the Delphi community and .NET is the logical next place for all Windows development tools to go. I think it is a win-win situation.

..."

http://www.sys-con.com/story/?storyid=48156&DE=1

SlashDot: Delphi Turns 10

"Today is Delphi's Tenth Birthday! The launch of Delphi 1.0 occurred on February 14th, 1995 at the Software Development '95 conference at the Moscone Center in San Francisco. Numerous links are commemorating the event, including a recorded interview with Zach Urlocker and Gary Whizin, members of the original management team. Zack's original Product Definintion document is here. An attendee at the original event reminisces about the launch."

http://developers.slashdot.org/article.pl?sid=05/02/14/2146211&tid=156&tid=8

TopStyle / FeedDemon: Behind the scenes

Nick Bradbury gives us an inside look on how he develops TopStyle and FeedDemon. Adam Stiles follows up Nick's post with an inside look at the NetCaptor development process.

Read more @ http://nick.typepad.com/blog/2005/02/behind_the_scen.html

Monday, February 14, 2005

10 Years of Delphi

That's right, on February 14th, St. Valentines' Day, Delphi will become 10 years old. Delphi 1.0 was released to a standing room only crowd at the 1995 Software Developers Conference West. I remember cringing when Anders Hejlsberg demoed the exception handling capabilities by dereferencing a nil pointer. I had done all the work to map the hardware exceptions (via. the Windows 3.x toolhelp.dll) into language exceptions. Windows 3.x at the time had no OS supported exception mechanism. Remember all those “General Protection Fault” dialogs? brrrrr...

Read more @ http://blogs.borland.com/abauer/archive/2005/02/08/2597.aspx

Fyracle 0.8.5 released

Fyracle 0.8.5 released
======================

Changes:

- added ALTER TABLE ADD syntax
- added ALTER TABLE DROP syntax
- plsql compiler can now detect multiple script
errors in a single run
- fixed a problem with long table definitions
- fixed a problem with the TO_CHAR function
- fixed a bug in PL/SQL's handling of scaled integers

The windows 0.8.4 installers contained several 0.8.3
binaries. This has been fixed in 0.8.5

The "demo kit" has been renamed "fyracle runtime kit"
The "install kit" has been renamed "fyracle developer kit"

Download:

The new runtime install kits can be downloaded from:
http://www.fyracle.org/downloads

The developer kit can be downloaded via:
http://www.janus-software.com/fb_buy.html


Upgrade:

The recommended upgrade procedure is to first
uninstall previous versions of Fyracle and only
then to install the new 0.8.5 release. Remember
to save your configuration files (firebird.conf
and aliases.conf) if you changed them!

The uninstaller has a start menu entry on Windows
and can be found at the top of the install
directory on Linux and Windows.


Compiere:

No change since 0.8.4 / 1 Feb 2005

IBExpert : new version

A new version of IBExpert (2005.02.12) is available.

Friday, February 11, 2005

kbmMW v. 2.50.00 news

kbmMW v. 2.50.00 Enterprise Edition Beta 2 rel 1 launched.
kbmMW v. 2.50.00 ProPlus Edition Beta 2 rel 1 launched.

TestParser UDF (FULL-TEXT search)

TextParser - collection of udf and procedures for organizing the "FULL-TEXT" search. Procedures and functions make it possible to parse blob-columns and to spread text for the words into the special tables. Then according to these tables it is possible to achieve a search for words in the text with the high speed.

KylixDriver version 3.0 release

Add-ons:

GDD: Conforms to the latest Linux kernel 2.6.10. | Kernel regparm option support - new logic file produced.

DEMO: Support for ALTERA chipset PCI: diagnostic application sample that includes ALTERA-specific definitions.

KAL: TkdFrameworkAssistant complementary class added - better code allocation.

CardBuilder: Clear-all-resources-at-once ability.

Improvements:

KAL: kdPCINonBridge class - autoset first-found (bus, slot, func) vector in case if (0,0,0) is specified for VID, DID. | TkdInterrupt's OnHwInterrupt event property syntax changed - get required info simpler!

CardBuilder: Testing application code improvements.

Bug-fixes:

KAL: Rare card destruction crash leaded by resource destructor – Fixed.

GDD: Memory range 0x00000000-0x00000000 (one-byte length) mapping trouble – Fixed.

Dozens of little bugs throughout KAL, GDD, CardBuilder fixed - very stable, thus 3.0.

Reported:

None.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------

KylixDriver is RAD Kylix-oriented and integrated software for PC hardware access. At the current stage of development this toolkit can be efficiently used for writing Linux device drivers for PCI specific hardware and broad range of other types of peripherals.

Why not to drive hardware directly from user applications? Why not to diagnose hardware resources right at Kylix design time and, at once, to create the driver skeleton for your device?

KylixDriver is a ready-made solution!

KylixDriver Outside Documentation on the Web is here.

Thursday, February 10, 2005

Embedded Firebird and Microsoft SQL Server 2005 Express Feature Comparison

This is a basic comparison of embedded Firebird 1.5 and Microsoft SQL Server 2005 Express. Remember that it compares the embedded version of Firebird which doesn't run as a separate service but is fully embedded in the application. I plan to come with a server-server comparison in some of the future posts.


To summarize: Embedded Firebird is a clear win when you need a fully embedded database that users are not aware of. The clear advantages of Embedded Firebird are:

  • Licensing. You can't beat Firebird's open-source license that allows use in commercial applications without any viral effect (i.e. no need to open your proprietary code). Any kind of a "free redistribution" license is just too far from that.
  • XCOPY Data Deployment. A Firebird database is a single file. Just copy it somewhere on disk and open it. Compress it and send it by e-mail. Use your own file extension and associate it with your application.
  • XCOPY Runtime Deployment. Not only the data but the runtime (which is a single DLL and optional supporting files) can be just copied to your application's directory.
  • Runtime size. Compare the SQL Express 36 MB download with the 2 MB Firebird runtime.
  • No performance limitations. With Firebird you can have a database of any size and open multiple connections without any penalty.
  • Real embedding. Users and administrators don't need to be aware that your application is using Embedded Firebird because it is only accessible from your application.


Read more @ http://www.dotnetfirebird.org/blog/2005/02/embedded-firebird-and-microsoft-sql.html

Trolltech to Extend Dual Licensing to Qt for Windows

Qt cross-platform development software will be available under the open source GPL license for open source development and a commercial license for commercial development


Source: http://www.trolltech.com/newsroom/announcements/00000192.html

Unofficial VisualCLX Patches

2005-02-07 Update: VisualCLX patches version 3.7

  • new z-order fix (Windows and Linux)
  • GDI-Handle/Pixmap usage reduction / new TImageList
  • new MDI patches
  • and many more.

Monday, February 07, 2005

Study: Few bugs in MySQL database

A source-code analysis of the MySQL database revealed few bugs compared with the number found in commercial code, testing company Coverity said Friday.

Unofficial VisualCLX Patches

2005-02-05: Update: New inprogress patches for version 3.7

  • new MDI patches
  • GDI-Handle/Pixmap usage reduction
  • and many more.

The patch 3.7 is still in progress. I meight change some already added patches without notification.
Update: QThemed 2.0.6
Fixed '4' instead of '>' under Linux in menu.

2005-02-04: Added: Qt 2.3.2 update Revision 1 by Zeljko
Qt 2.3.2-1 library update with Borland's patches and addition patches.

2005-02-03: Update: QThemed 2.0.5
Added package support. Programs can now use BPLs in combination with QThemed.
Update: New homepage
The old homepage is now replaced by a Wiki system.
Added: Thread call system
Execute a function in another thread's context.
Added: FastLinuxRTL
Speeds up the DBClient components and other AnsiString related bottle necks.

Test Driven Development: Programming by Intention

Have you ever had to work on a piece of code and found that it was hard to understand? Maybe the logic was convoluted, the identifiers meaningless, or worse, misleading. You say there was documentation? Was it readable? Did it make sense? Was it up to date with the code? Are you sure? How do you know? This chapter discusses programming by intention, a central idea in XP. It means making your intent clear when you write code.

"The market for open-source database software will explode this year."

In Investor's Business Daily Ken Spencer Brown quotes Forrester Research analyst Noel Yuhanna saying "The market for open-source database software will explode this year." He sees annual sales rising to $1 billion by 2008, from $120 million now. "Most will come in support and service contracts." That's good, because you have to give away a fearsome number of free copies to create a billion dollar market.

"Firebird - I want this database!"

The lastest InfoExame magazine in Brazil includes an article called "Firebird - I want this database!". You can see the table of contents. "Firebird 1.5.2 bring features of powerful database systems, and it's free!"

Sun DB = Firebird ?

on firebird-generals

It seems that Sun is working on a database to be released with their own brand:

http://jroller.com/page/thinksInCode/20050205#sun_open_source_database_what

There also is a poll about what will Sun DB be based on and Firebird is one choices:
http://www.manageability.org/polls/sun-db

I personally think (if all this news are true) that it will be based on the same engine used by OpenOffice.org 2.0.

Marcello

Linuxquestion - firebird only second in poll

http://www.linuxquestions.org/questions/showthread.php?s=&threadid=272098 I'm sure we could have done better than that, given the low level of voting. There were nearer 2000 total votes last year. -- Lester Caine
[ED:
I like the last reply in the forum and i agree with it:

"Firebird doesn't have to win ( post #88) I voted for Firebird, and would have liked to see it win. But it doesn't have to win. I remember 3 years ago when I started looking for an open source database to use on my sites - for weeks the only options that were on the horizon were MySQL, PostgreSQL and Berkeley. Then I came across a very lengthy discussion comparing MySQL and PostgreSQL, and there tucked in a few comments were references to Firebird. Then searched for information on InterBase (Firebird's closed source sibling). I downloaded and started to learn Firebird, and I was amazed that something this good was freely available.

Since then Firebird has gained far more visibility, partly because of polls like this. Whilst Postgres and MySql had books available to help new users understand the dbs, until 6 months ago Firebird did not have that. For any new user who was in my position trying to decide between these dbs, it would be £100 well spent to buy one book on each of these three dbs and look at how the dbs work using those books. Its a small investment considering how important it is to make the right decision from the beginning.

The important thing for me is not that Firebird wins these polls - it is that more people hear about it and get the chance to to use a database that in its history has often had features before PostgreSQL, DB2, and even Oracle. And just as MySQL and PostgreSQL are acquiring more features with every release, so is Firebird."

http://www.linuxquestions.org/questions/showthread.php?postid=1454285#post1454285
]

Firebird ADO.NET Data Provider 1.7 RC 1

The Firebird ADO.NET Data Provider 1.7 RC 1 is available for download.

* Download information can be found here:

http://firebird.sourceforge.net/index.php?op=files&id=netprovider

* Release notes:

Release Candidate 1 ( 2005-02-05 )
------- --------- - - ---- -- -- -

Bug fixes (Please read the Changelog for details)

* Fixed problem with 0 lowerbound array fields on the embedded server
support.

* Fixed problem with stored procedure calls on FbCommand.ExecuteScalar
method.

* Fixed null Guid handling.

* Try to fix performance problem with array fields on selectable
statements when working agsint the standalone firebird server.

* Fixed problems with the new Design time support on Visual Studio 2003.

* Fixed incorrect mapping for binary blob fields to System.Array, now
it will be mapped to byte[]

* Fixed char values checkings by using the field character set
information for the check.

* Fixed some documentation comemnts that were incorrect.

* Improved comments removal on the FbScript class. (Andreas Sandner)

* Integrated the BinaryEncoding class for the octets character set
support (Contributed by Jim Beveridge)

* Added error information to the FbDataAdapter configuration wizard.



CVS Tag: NP_1_7_RC1

Friday, February 04, 2005

Introducing FireBird

Pablo Lerner has an article Introducing FireBird in the Universal Thread Magazine.

"

This article Intends to introduce a new tool that is an old one, at the same time. I'm talking about the Firebird database engine, which is new because the software is only four years old. Quite few people would trust their enterprise's data integrity to a product with such a short history, but the code from which Firebird was born four years ago is over twenty years old, and not many programs running today has such maturity.

"

Firebird V1.5.2 for Solaris (X86)

Firebird V1.5.2 Classic and Superserver for Solaris (X86) are available for download. Thanks to Konstantin Kuznetsov.

Firebird in IT Manager's journal

A second mention of Firebird in IT Manager's journal quotes Joe McKendrick, an analyst with Evans Data, "The success of FireBird and MySQL are strong indicators of the strength of the open source database market and of the greater open source movement as a whole. Operating with tighter budgets and fewer resources, a database administrator can safely and productively use an open source alternative where he would have had to traditionally rely on a commercial product."

Thursday, February 03, 2005

Transaction Isolation Levels in Firebird

Source: http://www.dotnetfirebird.org/blog/2005/02/transaction-isolation-levels-in.html

Every database operation in Firebird runs inside a transaction. The transactions have these features: Atomicity, Consistency, Isolation, Durability (read more about ACID). Let's talk a bit about the isolation feature.
Isolation says that the transaction shouldn't interfere with other transactions. Achieving full isolation would mean serializing the transactions and that would slow down the database. Therefore there are four transaction isolation levels defined and every of them represents a different balance between isolation and performance:

  • Read uncommitted
  • Read committed
  • Repeatable read
  • Serializable

Firebird doesn't match the standard (SQL92) isolation levels exactly. The following table compares the isolation levels that are supported by Firebird ADO.NET with the SQL92 standard.

Firebird ADO.NET Provider IsolationLevel Firebird Isolation Level Corresponding SQL92 Isolation Level
IsolationLevel.ReadUncommitted READ COMMITTED
RECORD_VERSION
Read Committed
IsolationLevel.ReadCommitted (default) READ COMMITTED
NO RECORD_VERSION
Read Committed
IsolationLevel.RepeatableRead SNAPSHOT/CONCURRENCY Repeatable Read
IsolationLevel.Serializable SNAPSHOT TABLE STABILITY/CONSISTENCY Serializable

All transactions have these additional Firebird transaction options set:


  • WAIT - when using READ COMMITTED isolation level it waits for uncommitted
    transactions to finish before reading a row
  • READ WRITE - allows data modifications

You can use the predefined isolation levels by calling public FbTransaction BeginTransaction(IsolationLevel) or you can tune the transaction options more precisely by using this BeginTransaction overload: public FbTransaction BeginTransaction(FbTransactionOptions).

IsolationLevel.ReadUncommitted


ANSI/ISO Read Uncommitted isolation level is not supported by Firebird. IsolationLevel.ReadUncommitted behaves like ReadCommitted but it returns the latest committed version of a rowand ignores any other (uncommitted) versions.
Reading
What it reads The latest committed version of a row and ignores any other (uncommitted) versions.
Dirty reads No
Phantom data Possible
Nonrepeatable reads Possible
Writing
Modification of data modified by other transactions since this transaction started No
Other transactions can modify data read by this transaction Yes
Usage
Suitable for Short transactions that modify data.

IsolationLevel.ReadCommitted


Reading
What it reads Waits for uncommitted transactions modifyinga row (to be either committed or rolled back).
Dirty reads No
Phantom data Possible
Nonrepeatable reads Possible
Writing
Modification of data modified by other transactions since this transaction started No
Other transactions can modify data read by this transaction Yes
Usage
Suitable for Short transactions that modify data.

IsolationLevel.RepeatableRead


Reading
What it reads When the transaction starts, a snapshot of the whole database is made. The transaction reads from that snapshot.
Dirty reads No
Phantom data No
Nonrepeatable reads Possible
Writing
Modification of data modified by other transactions since this transaction started No
Other transactions can modify data read by this transaction Yes
Usage
Suitable for Long transactions that require lots of reading and stable data view (reports).

IsolationLevel.Serializable


Reading
What it reads When the transaction starts, a snapshot of the whole database is made. The transaction reads from that snapshot.
Dirty reads No
Phantom data No
Nonrepeatable reads Possible
Writing
Modification of data modified by other transactions since this transaction started No
Other transactions can modify data read by this transaction No. All tables that the transaction has read from are locked. Other transactions are prevented from writing to that tables.
Usage
Suitable for Long transactions that require exclusive access to a table.


Vulcan Overview document updated (again)

Vulcan Overview document is updated again. Download is available (.pdf). This document corrects a number of errors in the original.

Firebird Essencial

Carlos Cantu's new reference book Firebird Essencial focuses on practical solutions to common problems encountered by developers particularly Delphi developers. The book, written in Portuguese, is available in two formats: standard and signed. The signed version will be available for the next two months only. The slightly higher price includes a R$ 8,00 contribution to the Firebird Foundation.

Researcher finds strong uptick in open source DB use

Researcher finds strong uptick in open source DB use by Vance McCarthy on IT Managers Journal.

Firebird Leads Open Source Database Deployments

Firebird Leads Open Source Database Deployments, Says Survey, news item on Government Technology

Read more @ http://www.govtech.net/news/news.php?id=92941

Linux is mission critical for Czechs

The Czech postal service is putting its faith in open source, by migrating a vital application onto SuSE Linux

Read more @ http://news.zdnet.co.uk/software/linuxunix/0,39020390,39186055,00.htm

Red Hat charging for the wrong distribution?

"Red Hat has really been grating my nerves as of late. Undocumented features that are advertised but unusable, recommended updates that are thoroughly broken, failure to update packages with high-impact problems, and a poor software packaging and distribution policy have me testing other distributions with a goal of taking my business elsewhere. "

Read more

Wednesday, February 02, 2005

Vulcan Overview document

An updated Vulcan Overview document is now available (.pdf). This document corrects a number of errors in the original.

Ibm Brasil - Firebird on Zseries (mainframes) ?

Celio Costa Carvalho from Ibm Brasil asked on devel-list and Nickolay responded:

> I am trying to install Firebird in a zSeries machine (mainframe).
>
> When I issue the configure command I get :
>
> checking whether make sets $(MAKE)... yes checking build
> system type... s390-ibm-linux checking host system type...
> s390-ibm-linux checking target system type... s390-ibm-linux
>
> And when I enter a make command I get :
>
> g++ -I../src/include/gen -I../src/include -ggdb -O3 -march=i586
> -mcpu=i686 -fno-omit-frame-pointer -fno-builtin -DNDEBUG
> -DLINUX -pipe -MMD -fPIC -DPROD_BUILD -c
> ../src/common/classes/alloc.cpp -o
> ../temp/libfbcommon/common/classes/alloc.o
> cc1plus: invalid option `arch=i586'
> cc1plus: invalid option `cpu=i686'
>
> Could you help me saying how I compile the Firebird in a
> zSeries or s390 machine ?
Firebird 2.0 has the framework for generic Linux builds of Firebird. Firebird 1.5 defaults to x86 build on Linux and this is what you see. It is cerainly possible to build 1.5.X on linux/ Anyways, if you are interested in getting Firebird to work on your platform I would recommend you to start with Firebird 2.0 codebase. You'll probably need to add a couple defines for your CPU architecture in a few places. Please get in touch with me if you are interested in producing this port and submitting patches for it. > Celio Costa Carvalho
Nickolay

CONNECT!

"Firebird 1.5 is a full-featured SQL database engine. It is powerful, yet lightweight, with minimal configuration and administration needs. It's easily scalable from single-user, single-database usage up to company-wide enterprise purposes. A single Firebird server can handle multiple independent databases, each with multiple client connections. And best of all: it's true Open Source, thus free of any license fees even for commercial use."
(source: Firebird Facts)

The first question that comes in mind for a Firebird new user is always "If Firebird is so good, why is its visibility so small in the database world?".

It has been a hot point for discussion around the Firebird Project for some time. We have a great developer team, we have a great documentation team, we have lots of volunteers doing a great job in support lists. We really don’t have a "Marketing Team".

Firebird does have a large group of users: Sourceforge downloads rolled over the million a long time ago. Mainly, they are software companies or independent software developers that are using Firebird in private software products. Typically, people who buy the products from them don’t really care about the database engine - they concentrate on the whole software solution and whether or not it works.

We could easily suppose that most end-users of Firebird don't know that they are using Firebird at all! If the product runs smoothly, without the need for a specialized DB Administrator, and it never gives you a problem, you tend not to give the database engine any thought.

Firebird is gaining a lot of ground as as a player in the database arena. We are a strong project delivering a strong product that competes directly with commercial leaders such as Oracle and Microsoft SQL. It’s not enough to be a great database engine, if the world know doesn't know about it.

We don’t have a Marketing Team, but we do have a lot of people interested in finding ways to spread the word about Firebird. The FirebirdSQL Foundation is helping to coordinate these interests into a positive marketing effort. Your help, as a Firebird user, can make a difference.


What is going on now to connect Firebird with "the market"? What can members do to keep one another and the public in touch with Firebird and the places it is to be seen?



Read more @ http://www.firebirdsql.org/index.php?op=ffoundation&sub=connect

Tuesday, February 01, 2005

Fyracle 0.8.4 released

Fyracle 0.8.4 released
======================

Changes:

- Added JDBStudio for Fyracle to the Developer Kit
- Enhanced supported syntax for INSERT and UPDATE:
INSERT and UPDATE from a SELECT is now supported
- Enhanced supported functionality of TO_CHAR function
- Fixed a problem with the handling of line breaks
embedded in literal strings
- Numerous small bug fixes


Download:

The new demo installers can be downloaded from:
http://www.fyracle.org/downloads

The Developer Kit can be downloaded via:
http://www.janus-software.com/fb_buy.html


Upgrade:

The recommended upgrade procedure is to first
uninstall previous versions of Fyracle and only
then to install the new 0.8.4 release. Remember
to save your configuration files (firebird.conf
and aliases.conf) if you changed them!

The uninstaller has a start menu entry on Windows
and can be found at the top of the install
directory on Linux and Windows.


Compiere:

The Compiere demo has been upgraded to 2.5.1g in
cooperation with Jotel. The files can be downloaded
from either the Janus or the Jotel site.

Monday, January 31, 2005

Danny Thorpe and Tagawa-san are working on an Update 2 for Delphi 2005

Here's the direct quote:

Actually, I'm knee deep in niggly bug fixes in the compiler, RTL, and
VCL for the next D2005 update. Tagawa-san is, too.

Read more @ http://www.lemanix.com/nick/archive/2005/01/28/1632.aspx

Sunday, January 30, 2005

SAS is the company that comissioned the Vulcan port of Firebird

My name is David Shamlin; I am with SAS Institute, Inc (http://www.sas.com/). SAS is the company that comissioned the Vulcan port of Firebird. We are a business and analytic intelligence software vendor.


A year and a half ago we identified a business need to incorporate relational/ACID transaction storage capabilities into our platform bundle and decided to pursue an open source database solution that met our requirements. We chose Firebird because it supported an embedable database engine and implemented many of the SQL semantics our consumers need. Because our software platform runs on a number of 64-bit SMP operating systems, our first order of business was to create a Firebird port to one of these systems and introduce modest (i.e., multiple user requests executing in parallel) multi-threading capabilities to the engine. We entered into a partnership with IBPhoenix and with Paul Beach's help acquired the services of Jim Starkey to do much of the heavy lifting on the project for us.

In December of last year, Jim (with Ann's help) finished the initial phases of this work which has come to be refered to as the Firebird Vulcan project. During that time, we also had the opportunity to address some minor JDBC issues with Roman and discuss testing strategies with Pavel. Currently, SAS has three developers and a DBMS product specialist working full time with the Vulcan source. A couple of additional individuals are contributing on a part time basis to additional porting and testing efforts. We have an initial port to z/OS completed, and I hope to initiate ports to a couple more 64-bit Unix/Linux systems in the first quarter of this year.

SAS's intent since the beginning of the project has been to contribute to the Firebird open source project and continue to be an active supporter through direct development and possibly commissioning further coding projects in the future. Since Jim turned over his final work to us in December, we have accumulated a series of source code changes that address some bugs we've uncovered through our testing. At this point, we're interested in committing these changes to the new Vulcan repository on Sourceforge and would like to enter into a dialog with the Firebird project administrators on how we can most effectively accomplish that.

We're pleased with the results we have achieved with Firebird/Vulcan to date and excited about becoming an active participant in the Firebird project. I trust the community at large also sees the value inherent in Vulcan and will welcome SAS's contribution. We look forward to the opportunity to collaborate with the team and getting to know others involved with Firebird better.

I can be reached for direct follow up at david.shamlin@sas.com and will continue monitor this mail list in case the group wishes to have a more public discussion.

Thanks for your attention -- David
--
R&D Director, SAS Institute, Inc

The Code Project - Embedded Firebird: Full-Featured Embedded Database with 2 MB Runtime

Firebird is an database with 20 years of history, full set of features (including transactions, stored procedures, hot-backup, excellent scalability, etc.) and a friendly open source license. It is an overlooked but compelling alternative to Microsoft Jet and Microsoft MSDE 2000/SQL Express 2005. Let's take a look how it can be used embedded in your desktop application. What makes Embedded Firebird ideal for embedding:

  • The embedded runtime is <>
  • The database file (it's just a single file) can have any name and extension. You can associate the extension with your application.
  • The migration to a standalone server couldn't be easier. Just copy the database file to the server and change a connection string on your client.
Read more @ http://www.codeproject.com/useritems/EmbeddedFirebird.asp

Vulcan Merge

The strategy to merge Vulcan and Firebird 2.0 to form Firebird 3.0 will
probably be gated by a single central question: Will Firebird 3.0 use
the Vulcan provider architecture.

Firebird 2.0 consists of two main pieces: A client library and a server
executable (some platforms have an embedded engine packages as a plug
replacement for the client library). The client library contains a
Y-valve front-ending the remote interface. The server executable
contains the server code, the Y-valve, and an engine.

In the Vulcan provider architecture, the client library (Firebird.dll
or libfirebird.so) contains only the Y-valve. During the database
attach operation, the Y-valve, under control of a configuration files,
tries to load provider modules from an ordered list until one is able to
successfully attach the database. Vulcan currently has providers for
the engine, the remote interface, and a gateway to legacy Firebird and
Interbase. When the ODS is changed, Vulcan gets another engine
provider, retaining the old shared libraries (buildable only from a CVS
tag) for backwards compatibility. Finally, in Vulcan, the server is an
executable linked to the same client library as ordinary client programs.

The provider architecture has a number of advantages. One is the
ability to perform rolling upgrades. In Firebird 2.0, there are two
ways to provide access to databases with different ODSes. One is to
have the single engine support a variety of ODSes. The other is for the
user to balance two (or more) Firebird installs on the same system. For
former is constraining on development, leading to unnecessarily complex
code to straddle versions, while the latter shift the burden to the
user. The Vulcan provider architecture, on the other hand, allows us to
release a new engine version as a new provider, leaving the existing
engine(s) in place, with a tweak of the core configuration file. This
allow a single program to attach simultaneously two databases of
radically different ODS versions, for a single installation to straddle
versions, and for production and development versions to coexist on a
single system.

The Firebird Y-valve, on the other hand, is hard linked to a fix set of
subsystems managed with conditional compilation.

A further complication is that while the Vulcan Y-valve requires that
each provider be thread safe, the Firebird Y-valve assumes its
subsystems are not, initiating THREAD_ENTER/THREAD_EXIT synchronization
before every subsystem calls, leading to tight integration between the
Firebird Y-valve and engine. Imposing the Vulcan provider architecture
on Firebird 2.0 breaks the division of work between the Firebird why.cpp
and jrd.cpp, and forcing the same global reorganization I had to do for
Vulcan.

The provider architecture is, perhaps, the most important aspect of
Vulcan, providing a clear, clean mechanism to manage change. And change
is the one thing we can be certain of.

Vulcan Priorites

Vulcan's highest priority is Firebird 2.0 coexistence. Vulcan and
Firebird 2.0 should be serially shared database files. To this end,
Vulcan needs to bring its ODS up to that of Firebird 2.0. The Vulcan
ODS is based on a bastard snapshot of the Firebird 2.0 development tree
a year ago last December. To the best of my knowledge, and I may well
be wrong, the major difference is index structure. Vulcan desperately
needs Arno's extended indexes. The conversion shouldn't be difficult --
btr.cpp was lightly touched -- and while the page cache manager has been
heavily rebuilt, the macros used for interface has been redefined. The
second part of coexistence is making sure that Vulcan and Firebird 2.0
don't trip over each other. For better or worse, the requirement to
support fine granularity threading dictated a change to the lock manager
format, so actually sharing a database between Vulcan and Firebird 2.0
is out of the question. We should, however, make sure that Vulcan uses
a different lock file with an appropriately different header. I think
we also need to solve, for once and all, a strategy that ensures that
two engines never try to shared a database file using different lock
managers. I'll make this the subject of a different post.

I think the second priority is fixing the Linux/Unix build procedure.
The procedure in place is strictly ad hoc for my personal convenience.
It needs to support building outside of the source directories,
differential build for production releases, and support for hybrid 32/64
releases. The dependency on autoconfig is definitely a problem for
platforms that support both 32 and 64 bit executables. Buildgen is
design to generate "stuff" from component specific Visual Studio 7
project files. Right now it generates complete makefiles. I could also
be used in a more limited way to generate make include files to be used
with component specific, hand maintained makefiles.

The third priority is re-implementing the "execute sql" statement and
building a "services" provider. The Vulcan architecture has full
support for the services API in both user interface and the generic
provider class, but there isn't yet a services provider to field the
calls. The difficult problem is that the individual standalone
utilities that comprise the services module are a profound mess,
containing references to internal engine functions, engine threading,
engine thread data, and engine synchronization primitives, none of which
exist anymore. It's an open question of whether to the "services"
builds of the components or just start over. I don't know. Somebody
needs to do a careful investigation and make a recommendation.

The fourth priority is general improvements. This is include new
features and bug fixes from Firebird 2.0 and general upgrades of the
code, specifically including continuation of the engine mechanism
encapsulation process. The most important of these is the
transformation of the RSB mechanism into a proper C++ hierarchy.


Enterprises Warming Up to Firebird Open-Source Database

Evans Data Corp.'s Winter 2005 Database Development Survey looked at the database preferences of some 406 developers in mostly medium to large enterprises. Of those surveyed, 23 percent of developers picked Firebird for use in "edge" databases—in other words, those that are embedded in systems or in devices, such as a point-of-sale system in a retail outlet or a network device. Runners-up included Microsoft Corp.'s Access, at 21 percent, and Microsoft's SQL Server, at 13 percent.

RFID tagging will likely fuel interest in Firebird, said Joe McKendrick. McKendrick is an analyst for Evans, which is based in Santa Cruz, Calif.

http://www.eweek.com/article2/0,1759,1756876,00.asp

Friday, January 28, 2005

Vulcan Joins Free World!

The Vulcan source code joined the free world last week when the CVS tree
moved to the Firebird tree on SourceForge. Vulcan is now under the same
administrative policies as the rest of Firebird. All new and
contributed Vulcan code has been submitted under IDPL. The source tree
also includes the "buildgen" utility necessary to build Vulcan on
non-Windows platforms.

A technical description of Vulcan is available at
http://www.ibphoenix.com/downloads/VulcanOverview.pdf, including a
description of missing and incomplete components. I urge anyone
interested in Vulcan to start with this paper.

Vulcan is currently available as source with build procedures for
Windows (Visual Studio 7, also know as Visual Studio .NET 2003), 32 bit
Linux, 64 bit Linux, and 64 bit Solaris (Forte compiler w/ pthreads).
Ann and the Pauls are working on binary installations which should be
available soon.

Another document, VulcanRules.html in the vulcan directory, lists a set
of project management rules for the Vulcan project. The project is now
part of Firebird, so the rules are now advisory, not obligatory. They
are, in my opinion, still good rules.

There is not yet a Vulcan release schedule, nor do I expect to see one
before Firebird 2.0 ships. The source tree is open for development,
however, including propogation of features and bug fixes, as individual
developers feel appropriate, from Firebird 2.0. I personally think it
would be useful if the Vulcan and Firebird 2.0 ODSes were brought into
sync. I do ask that developers announce their intentions before
beginning a task rather than waiting until code is ready to submit.

Vulcan development was a long hard struggle, but now it's time for
Vulcan to take it's place in the Firebird project to sink or swim on its
merits. I think its good stuff, and I hope you will, too.

--

Jim Starkey
Netfrastructure, Inc.
978 526-1376

"Everything about Release 1.5"

A german Firebird 1.5 article entitled "Everything about Release 1.5" written by Thomas Steinmaurer is in the new edition of the German magazine "Der Entwickler". The magazine is available on February 3rd, 2005.

Global Temporary Tables

From Vlad Horsun:

Hi All !

During last two months i did some research and implementation of
global temporary tables. Here i want to show what i has done and listen
your opinions and critics.


Definition:

Global temporary table (GTT) is base relation with persistent metadata
definition, stored in database catalog (system tables), and temporary data.
GTT's can be two kinds - with data, persistent within connection or within
transaction only. Data from from different connection\transaction are isolated
one from others but metadata is common.


Syntax and semantics:

CREATE GLOBAL TEMPORARY TABLE
[ON COMMIT {PRESERVE | DELETE} ROWS]

Creates metadata for GTT and stored it in database catalog.
If optional ON COMMIT clause is omitted then PRESERVE ROWS is default.

CREATE GLOBAL TEMPORARY TABLE is usual DDL statement and
handled by the engine the same way as CREATE TABLE statement - when
issued all necessary entries made in system tables and when transaction
commited all other work are done by DFW. GTT differs from persistent tables
by two new flags in RDB$RELATIONS.RDB$FLAGS. ODS change not
required.

GTT's can have indexes, triggers, field and table constraints as permanent
tables. All constraints between any kind of permanent and temporary tables
follow the rule below:

a) references between permanent and temporary tables are forbidden
b) GTT with ON COMMIT PRESERVE ROWS can't reference on GTT
with ON COMMIT DELETE ROWS

There is a table for easyer understanding which references are allowed

Master: Permanent Preserve rows Delete rows
Child:
Permanent Allow
Preserve rows Allow
Delete rows Allow Allow

Domain constraints also can't reference on GTT.


Instantiation and cleanup:

GTT instance created when it first referenced, usually at statement
prepare time. Each instance has its own private set of pages on which
data and indexes are stored. When connection\transaction ends all
instance pages are released.


Storage:

Data stored on the same manner as persistent tables. At creation
time GTT has 2 pages allocated - primary pointer page (not necessary
actually) and index root page (all index definitions for GTT stored there).
Let call them "base" pages.

When GTT instance is created, engine allocate new primary pointer page
for it and index root page (this pages not tracked in RDB$PAGES) . "Base"
index root page are readed and all indexes from it created for given GTT
instance. All data\index operations with this GTT instance used this pages.

Storage can be inside database files or outside it. For external storage
purposes introduced concept of "page space" :

"Page space" is a set of pages enumerated from zero to 2^32-1 (SLONG)
on which engine can store all types of pages. Each page space reside in
it's own OS file or set of files. Engine has all necessary info about this files.

All database pages now reside within predefined "base" page space.
Pages of GTT's instances can reside within this "base" page space or within
additional page spaces created and dropped on the fly. Temporary page spaces
creation and deletion performed by the engine automatically. Files created
with "temporary" attribute set (on platforms which have such attribute).
"forced writes" set to "off" for temporary page spaces regardless of database
settings. All pages from all present page spaces are handled within common
page cache.


Blob "problem":

At blob creation time engine not know in which relation (permanent or
temporary) this blob will be attached when materialized. Therefore when blob
will be materialized may arise necessity to move it from initial ("base") page
space into page space of the appropriate relation. To avoid such waste of
time i propose extension of blob parameter block (used when blob created).
This extension allows to set initial page space in which blob pages will be
allocated before materialization. No public API change is necessary, only
few new constants.


Known limitations:

When user create new index already existing GTT's instances will not
know about it (and don't build it of course). Only new instances will read
new index definition from "base" index root page and build it.

This limitation seems not very important to me since this is usually
bad practice to change metadata on working database.


Work progress:

Almost all of said above is implemented in my private tree.

Current implementation allows to have follow kinds of storage for
temporary page spaces:

1. No temporary page spaces - all inside database
2. Page space per attachment
3. Page space per engine process (one common page space for SS or
separate page space per CS process)

Now it is hardcoded but can easy be moved into configuration file.
I have no strong opinion about how files for temporary page spaces must
be configured - where it must be created. Now i simple create each page
space in its own single file with predefined name:

sprintf(file_name, "fb_tmp_%x_%x", pid, hash);

where "pid" is process id and "hash" is hashed full name of primary database
file. Files are placed into GetTempPath(). As temporary solution and for testing
purposes its worked fine but for production use we must introduce some
rules for it.


Regards,
Vlad