Firebird News

Sunday, June 28, 2009

Firebird Weekly News #5

This is the list of firebird related news from week 21-28 June

Firebird and FirebirdClient used in IBM’s AppScan Standard Edition. Read more.
Pave Cisar is happy to announce the public release of PowerConsole v0.7.5 and
Firebird Pack for PowerConsole v0.9.1.
Embarcadero officialy announces participation on FDD.
Firebird positive feedback from customers.
Firebird V2.1.3 Release Candidate 1 is available for testing.
Firebird Centos prerelease repository announced on Philippe Makowski’s blog (firebird 2.1.3 rc1).
Do you want a faster communication protocol for Firebird? Please vote for this feature.
Local protocol and multi-core processors and interesting situations with gbak.
Howto add job-event based plugin to Pentaho Data Integration (PDI), aka Kettle.
New php 5.2.10 firebird repository for CentOS announced.
PHP 5.3.0 RC4 repository for centos, fedora announced with firebird support.
New features in Entity Framework v4 and Firebird.

Firebird Interesting Source Patches and Commits:
MONDAY JUNE 22 2009
robocop committed 4d6d428 , d67d46e
Isolate even more the scrollable cursors-related code.
TUESDAY JUNE 23 2009
robocop committed 0bc6559
fixed CORE-1411 and CORE-1412.
WEDNESDAY JUNE 24 2009
hvlad committed 90808fa
Fixed bug CORE-2268 : GFIX causes BUGCHECK errors with non valid transaction numbers.
hvlad committed 8423160
Fixed bug CORE-2523 : gfix reports "unknown ISC error 0" in some cases.
hvlad committed b3c3c6d , 03d1f16
New feature 2524 : Command line utility to work with Trace Service.

THURSDAY JUNE 25 2009
asfernandes committed 1f8f19f
Add fbtracemgr to POSIX builds.
robocop committed be7d835
CORE-756 and CORE-2528.
robocop committed 3b45dd2
Convert goto into a for() loop.
robocop committed e0f3749
Some paranoid checks.
robocop committed 545d857
Apply the same trick as in evl.cpp for scrollable cursors' conditional code.
robocop committed ef02be0
I'm putting this strange assertion because I bet this code will never be called.
hvlad committed df5facb
Replace hard-coded array with isc_info_svc_timeout by correct endianess code.

FRIDAY JUNE 26 2009
robocop committed 8580b59
Moved DEFAULT_CLASS to constants.h;
SATURDAY JUNE 27 2009
robocop committed cdd2669
Avoid variableshadowing.
dimitr committed ed111c8
Fixed CORE-2462: 2.5 beta 1 has huge, fast-growing log files.So the bird was saved


SUNDAY JUNE 28 2009
hvlad committed 7e4a7cc
Fixed bug CORE-2532 : Incorrect size of volumes in multi volume database





.:():..:():..:():.

Sunday, June 21, 2009

Firebird Weekly News #4

This is the list of firebird related news from week 14-21 June

Slackware 12.2 and firebird user introduction on LQ.
Firebird ODBC Acrobat and JavaScript question of the day.
Firebird 2.1.2 is included in OpenSUSE 10.3.
Here is an interview with Vlad Khorsun, done for the Brazilian ActiveDelphi Magazine.
New poll at FirebirdNews.org .We have a new poll running on the site. Vote now (look at the sidebar).
Dmitry Kuzmenko wrote on his own blog What is sort? Part 1 and 2 articles
Prism9’s HelixGL Accounting System – powered by Firebird.
mojoPortal 2.3.0.8 Released
Tunnelling a Firebird Backup with SSH.
Hugues Van Landeghem reports that DevGems DataModeler supports Firebird.

Open Source Delphi based ERP with Firebird.


Firebird Interesting Source Patches and Commits:


WEDNESDAY JUNE 17 2009
robocop committed b764edb
Use our common code to deal with NaN and Infinity.
committed 4d14694
Fix CORE-2505: beware of built-in functions returning NaN and Inf. Some functions were added, but they are called from the debugger only because they aren't exposed through DSQL.
asfernandes committed 0c145b0
Make the VC++ Express build not show a popup everytime setenv.bat is called - one time is enough

THURSDAY JUNE 18 2009
robocop committed 0eef56c
CORE-2509. Took the opportunity to fix several data types.
asfernandes committed c3cab2d
Fix build
FRIDAY JUNE 19 2009
asfernandes committed 5a01b8b
Put apples and oranges in different baskets
aafemt committed 60280f3
Fix parsing of constructions like /*/ and /**/*
dimitr committed 4ad2806
Fixed some issues with the optimizer, namely: (1) incorrect cost calculation for indexed retrievals in joins and (2) too pessimistic heuristics for indices with zero selectivity.
paulbeach committed e6fafc0
O_DIRECT and MacOSX problem (lack of)
hvlad committed 79ae46e
Initialize variables before it could be used.
paulbeach committed 1629d25
O_DIRECT and MacOSX problem (lack of) - better ifdefs (I hope)

asfernandes committed 04d9688
Revert this change. HEAD was fine.

asfernandes committed 76a3d7a
Fixed CORE-2516 - Wrong processing SP parameters with arrays

SUNDAY JUNE 21 2009
robocop committed 664ebab
Give idx_id and associated values a consistent data type and treatment.
robocop committed 83a57c6
Validations (do not crash).
hvlad committed 651528d
Fixed bug CORE-2519 : GSTAT output is incorrect for tables with more than 2 billion records

.:():..:():..:():.

Friday, June 19, 2009

Firebird Weekly News #3

This is the firebird related news from week 7-14 June
News around firebird world:
Firebird django backend call for testing help and progress.
Firebird 2.1.2 included in SourceMage Linux.
Flamerobin 0.9.2 packages into Fedora Linux and epel repository
Fedora 11 released with Firebird included in the main repository

New IBProvider version with enhanced Firebird 2.5 support
About FB support in Delphi Weaver
How to Query the Firebird Fisheye
Firebird: Deal with Unavailable Database
Firebird DTP Plugin for Eclipse released

Firebird Source Patches and Commits:
Fix CORE-2370: SQL Plan greater than 2048 characters is not printed at all in ISQL.
This is the client side fix. Server-side fixes will follow.
We should be careful to not upset FB2.1 and before.
New messages to fix CORE-2505: beware of built-in functions returning NaN and Inf. Code will follow in one day.
Better input type for SQZ_decompress plus a bit of style
Apply Alex/Bill/Jerry/me patch re. portability in redefinition of operator new
Sign extension problem, thanks Bill Oliver.
Update logic for ininf() in POSIX and use macro isnan instead of _isnan in Windows.
Update to-do a tad.
Locking something in AST turns out to be a bad idea. Let's use a "dirty read" approach and honestly return the "unknown" state for a not initialized backup manager (quite rare situation in practice).
The third incarnation of the monitoring internals. I'm not happy to commit such big changes into the point release, but this is the only solution for the AST signal safety issues in POSIX (see CORE-2483).
The change consists of a few parts

Remove unneeded reference to isc_ipc, since this file is not needed to build gpre_boot
In 3.0 binreloc should be turned on

Opportunist developer sees the place to constify the code.
:-)
Undo huge and not friendly fix for Sun compiler. Missed file
Patch by DS and VKh to speed up SQZ in some cases
Avoid sign extension problems in CVT
Much more easy way to please Sun compiler and not touch anything more
isc_ipc usage cleanup

Though we do not actively use signals since 2.5, let's better initialize paths before setting handlers

Rename function as agreed with Alex and Dmitry.

Don't be strictive with compiler warnings

Reworked class Semaphore:

1. Mach semaphores on Darwin.
2. No more local SysV semaphores.
3. Fixed bugs in conditional var based semaphore.
4. Moved big methods from .h to .cpp file.

Mac port - use correct full name for libib_util

Fix CORE-2501: bin_shl and bin_shr shouldn't accept negative shifts.

Put bad_port_context() in alphabetical order and created a little helper, send_error().

Use PORT_FILE for port file lock - thanks to Claudio

Make initialization distributed - each subsystem does what it needs when needs, removed gds.cpp:init()

Backport improvement CORE-1171: make floating point's exponential format the same across platforms.

After asking Alex, he confirms that calling fb_shutdown_callback in isql is for everything except WIN_NT (make code equivalent to previous versions).

Improvement CORE-1171: make floating point's exponential format the same across platforms.

Declare exported functions correctly - thanks to Paul Beach

Robocop added Paranoid checks in server.cpp

Slightly improve the retry loops in inet.cpp. Let's give up as soon as the call fails with any unexpected error.

CORE-2263: RemoteAuxPort for SuperClassic and regular Classic.
This change also fixes the possible races in SuperServer (possible after getting rid of the global mutex in the remote subsystem).

robocop is Minimizing casts (reinterpret_cast).

Fixed use of monitoring tables in on disconnect trigger, make pool for DatabaseSnapshot independent

.:():..:():..:():.

Tuesday, June 09, 2009

Firebird Weekly News #2

This is the firebird related news from week 1-7 June
News around firebird world:
phpBB “quite furry” 3.0.5 released
Under the Firebird umbrella - site updates
Lazarus and Firebird Embedded tutorial on Windows 32 bits
Embarcadero Tools and FB , news from Delphi Day Italy

Here is an interview with Jim Davis, SAS Institute SVP and Chief Marketing Officer.

Firebird Source Patches and Commits:
Improvement CORE-2498 - Make a single attachment usabe by more than one simultaneous threads in embedded

Fixed CORE-2499 - Implementation limit of DISTINCT items are not enforced, causing generation of incorrect BLR
Backported changes extending range of usable auto* tools

What is new and fixed in Version 2.1.x

Backport fix for bug CORE-2348 : More problems with transaction numbers overflowing 32-bit signed integer and corrupting database

Backport sub-task CORE-1647 : Close external table's file even if it used by some cached (inactive) requests.
It also fixed bug CORE-2475 : External table data not visible to other sessions in Classic.

Backport fix for bug CORE-2416 : AV preparing a query with aggregate over derived table

Minor cleanup by robocop

Dimitry Added timeouts to the network event listener code.
Fixed wrong usage of SO_REUSEADDR on Windows.

Alex Fixed Sun compiler warnings

Fixed CORE-2483: Database permanent pool may get corrupted when working with monitoring tables.

Better way to compile utilities/ntrace/os/*/platform.cpp for different platforms

Alex Fixed SYSV semaphores + const correctness + cleanup

Code simplification by robocop (claudio)

This is already a Windows file, no need to check for the WIN_NT macro.

Alex Fixed posix build


Sunday, May 31, 2009

Firebird Weekly News #1

This is the firebird related news from 25-31 May Week

News around firebird world:
Firebird Romanian community had an small booth and tequila/beer meeting at eliberatica.ro event
I was in the middle of ubuntu.ro/fedoraproject.ro people also one suseromania.ro guy also I want to mention www.rosedu.org and softwareliber.ro.

Here are the picture with faces and names on it



Music/Book/Movie Label uses Firebird
Preparing for 6th FDD - Firebird Developers Day
Firebird Maestro 9.5 released

FirebirdConfig 0.2.0.34 released
Change Manager from Embarcadero will add Firebird support (at last)
Firebird Python PowerConsole 0.7 is released

Flamerobin will switch from subversion to git
Flamerobin Blob Editor on the way

Nice Requests and Bugs:
Ability to rename a table

Firebird Source Patches and Commits:
Make engine create lock files in /tmp/firebird

Lock files location should not be affected by value of TMP environment variable
Do not overload placement new operator. That is not valid accordingly to C++ standard.
Robocop fixed the VC9 project files.
Feature CORE-2470 - Support for alternate format of strings literals but on Firebird-Architect there was an long thread about it .
Added possibility to user inform external routines body , Made external routines entrypoint optional.
Fixed issue with two-phase procedure store and DDL triggers
HVlad Fixed MSVC8 build
Firebird Use COMMONAPPDATA folder on Windows for shared memory files placement (lock table, even table, etc).
Alex Peshkoff worked on Solaris port, related cleanup
Let's not crash while internally disconnecting a Classic process after a database shutdown.
Fix AV in trace when UNICODE collation is not found - thanks to Alex
Multi Threaded safe floating point exceptions control. Raise error in case of FP overflow according to SQL standard requirements.
Alex Peshkoff fixed warnings in AIX port.
Better error reporting. Also, don't block the requester in the case of error.
More fixes for bug CORE-2444 : make remapping of shared memory work correctly.
Fixed CORE-2482: Monitoring tables data collection is unstable when attaching or detaching database.

.:():..:():..:():.

Wednesday, May 06, 2009

Firebird issues with ruby on centos - ruby: symbol lookup error

Here is the thread , it looks familar to me
.:():..:():..:():.

firebird driver for ruby updated to 0.6

you can see the latest fixes for ruby 1.9 and version is now at 0.6 in the gem.spec

seems that you can install directly from github with gem (see the gem ruby icon in the right )


.:():..:():..:():.

Tuesday, March 17, 2009

databene benerator - added support for firebird

The new freshmeat website is now at version 3.0 and in the new clean interface you can read about this new

.:():..:():..:():.

The true story of Blob on reddit

You can read the true story of blob on reddit also an good thing is to vote if you have an account
Jim Starkey showed me the movie that inspired his boss
in requesting the Blob inside the RDBMS




.:():..:():..:():.

Saturday, March 07, 2009

Redhat/Fedora port in progress for Firebird

Here is the bug with Firebird Port in progress for Fedora/Redhat


.:():..:():..:():.

Installing Firebird on FreeBSD - FFAP (Firebird Apache Php)

By far the easiest way to install Firebird is via a package, or the ports tree.
When people in the FreeBSD community get a package running on FreeBSD, they often submit how they did it as a 'port', back to FreeBSD.
( This saves you working out what configure scripts to change, which make to use (make, gmake, bmake, aimk, etc) )

So we'll follow the road they've already blazed. Of course, feel free to download the source tarball, and get it building yourself, but it could take a while...


If you can't find a pre-compiled binary package on FreeBSD.org, firebirdsql.org, or ibphoenix.com, sync up your ports tree.
(Building it yourself ensure's it's built using optimisations for the processor you're running, too)


once ports tree is updated, do:


code:

cd /usr/ports/databases/firebird2-server
make install



Once this is finished, all dependencies are installed, the database is installed, the startup scripts are in place, the firebird user is added, and we're ready to go.

As the comment at the end of the install process suggests, we should change the password of the sysdba user, so lets do that now.

Starting Firebird
This involves running

code:

/usr/local/etc/rc.d/000.firebird.sh start
killall -HUP inetd


Or, simply reboot

Setting up Firebird's SYSDBA User

code:

cd /usr/local/firebird
./bin/gsec -user SYSDBA -pass masterkey
( the ./bin/ is required if you haven't got /usr/local/firebird/bin in your path )
GSEC> modify SYSDBA -pw

( We might add a user while we're here )
GSEC> add testuser -pw testuser

( Now quit out )
GSEC> quit



Done. Now we're ready for databases. the Firebird runs as the user firebird, thusly needs read/write permissions to a directory to store the databases.
I usually make one called '/usr/db':

code:

mkdir /usr/db
chown firebird /usr/db
chgrp firebird /usr/db
chown 770 /usr/db



There we have a nice, secure little home for our databases.
This directory isn't created by the install,as people will always want their databases stored in a different place, on a different HDD controller, etc.

Lets make a database

using your favourite editor, start a file in your home directory called 'fire1.sql', and in it, put the following:

code:

CREATE DATABASE "localhost:/usr/db/fire1.gdb".
COMMIT.

CREATE TABLE tbl_test1(
str_name VARCHAR(100) NOT NULL,
str_phone VARCHAR(20),
PRIMARY KEY(str_name)
).


Then save, and exit the file

Now, well create the database
( It may pay to put '/usr/local/firebird/bin' in your path, to save using the full path to the binaries every time )

code:

isql -u testuser -p testuser <>
Logging in for the very first time
Lets log in, and have a look. Run:

isql -u testuser -p testuser localhost:/usr/db/fire1.gdb

Database: localhost:/usr/db/fire1.gdb, User: testuser
SQL>

You're in! Lets see what's inside:
( Note. Put a semi-colon at the end of every command. It's the terminator at the moment )


SQL> show tables;
TBL_TEST1
SQL>

Let see how that table's made up:
SQL> show table tbl_test1;
STR_NAME VARCHAR(200) Not Null
STR_PHONE VARCHAR(20) Nullable
CONSTRAINT INTEG_2:
Primary key (STR_NAME)
SQL >

Lovely! put some data in
SQL> insert into tbl_test1 (str_name, str_phone)
CON> values ('henry','12345678');
SQL>

( Note the 'CON>' appears while a statement is continuing )

Let's select everything in the table
SQL> select * from tbl_test1;
STR_NAME STR_PHONE
===== ===
henry 12345678

Lets put some more in
SQL> insert into tbl_test1 (str_name, str_phone)
CON> values ('jane','87654321');
SQL>

Select all
SQL> select * from tbl_test1;
STR_NAME STR_PHONE
==== ========
henry 12345678
jane 87654321

Select henry
select * from tbl_test1 where str_name = 'henry';

select people starting with 'h'
select * from tbl_test where str_name like 'h%';

select the first record
select first 1 * from tbl_test1;

select 1 record, but skip 1
select first 1 skip 1 * from tbl_test1;

select any records with the letter 'e' in them
select * from tbl_test1 where str_name containing 'e';

As you can see, the SQL is very similar to other databases.
Next we will instal the apache to FAP (Firebird,Apache, Php)


portsnap fetch
portsnap extract
Installing apache 2.2
cd /usr/ports/www/apache22/
make install clean

Installing php extension
cd /usr/ports/lang/php5
make install clean
cd /usr/ports/lang/php5-extensions
make install clean
cd /usr/ports/database/php5-interbase
make install clean

We need now to enable the Php and firebird extension for it (interbase.so)

Firstly we will edit apache’s config - this lives in /usr/local/etc/apache22/

Open /usr/local/etc/apache22/httpd.conf in your favroute editior (or nano while your learning to love vi)

Look for this line : LoadModule rewrite_module libexec/apache22/mod_rewrite.so
directly underneath this line add the following 3


LoadModule php5_module libexec/apache22/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Then find this line : DirectoryIndex index.html and change it to DirectoryIndex index.php index.html

After this is done we need to give php an ini - the easiest way to do this is to copy the dist one into place

cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini

open /usr/local/etc/php/extensions.ini in your favroute editor and look for this line : extension=interbase.so if it isnt there, add it.

one last change and we are good to go!

open /etc/rc.conf in your text editor of choice and add these lines :


apache2_enable="YES"

once your done reboot and enjoy!



Recomdeded Reading :
1.The Complete FreeBSD Book
2.Free BSD Handbook
I was inspired for the Apache/Php install from this article

Monday, January 12, 2009

creating an db with isql-fb in firebird classic

If you try to create an db from isql-fb utility and you use firebird classic
then you might need to add the host in the connection string

$ isql-fb -user SYSDBA -password masterkey
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database "/var/lib/firebird/2.1/data/fooozz.fdb"
CON> ;
Statement failed, SQLCODE = -902
cannot attach to password database
SQL>

Here is the correct way to create the database with classic
$ isql-fb -user SYSDBA -password masterkey
SQL> create database "localhost:/var/lib/firebird/2.1/data/fooozz.fdb"
CON> ;


.:():..:():..:():.

Even Postgresql developers prefer Firebird over Mysql

Read an interesting interview where one developer when asked

If you should decide between Firebird and MySQL, though it would not be available to PostgreSQL, what with you in a generally won? And why?

I have three years of application development platform for Interbase / Firebird. So it is clear what I have preferences. Firebird is a very nice small compact database that I like and fandím it.



.:():..:():..:():.

Tuesday, December 02, 2008

News of the Libgda front

New jdbc wrapper and updated firebird drivers 
see the article 


.:():..:():..:():.

Sunday, November 16, 2008

convert security.fdb to security2.fdb in firebird

converting sercurity.fdb to security2.fdb (needed during 1.5 to 2.0 migration)
.:():..:():..:():.

Sunday, October 12, 2008

Firebird OdbcJdbc 2.0 driver changes

Interesting changes
  • - added Linux x64 support
  • - added Windows x64 support, thanks to Alexander Potapchenko.

and others
http://fisheye1.atlassian.com/browse/firebird/OdbcJdbc/changes-v20.log?r=1.1.2.4


.:():..:():..:():.

Tuesday, September 02, 2008

why firebird is better than mssql

http://www.sinatica.com/blog/en/index.php/2008/09/know-your-server


Thanks to its multi-generational architecture Firebird does not block readers. So it’s natural that this problem may seem strange to us. But each architecture has its pros and cons. This same multi-generational architecture, if not correctly used, can be a problem. It’s the case of long running transactions or "stuck transactions".
Such transactions cause record versions to accumulate in the database. (These versions can also be called generations. It’s multi-generational architecture, remember?) The more versions accumulate more work Firebird has to do to find the correct version of each record. If stuck for long enough Firebird server can get slow to the point of looking like it’s dead. How much time depends of the database load and the server’s hardware. Could be a month, could be an hour.
I’ve seen it happen many times. In some of those occasions I saw managers argue for hours that MS SQL Server or Oracle don’t have such problem. The fact is that they have other architectural details that you must take into account in your application. For example, some databases block readers. Simply switching databases, as some of those managers suggested, is not a solution.

Although having StackOverflow powered by Firebird would not be a bad idea. ;)

Friday, July 25, 2008

OSCON gets under way - clarion is used with firebird

But this is an open source conference, and Clarion is a closed source product. What exactly is ClarionMag doing here?

In my experience there are are plenty of Clarion developers already using open source products and tools. For the most part that means databases such as MySQL, Firebird, PostgreSQL and Ingres, and web tools, of which there are a great many (Apache and PHP are popular choices).

.:():..:():..:():.

On MySQL forks and MySQL’s non-Open Source documentation

One of the things that sets MySQL apart (in, IMHO, a very bad way) from other Open Source database projects/products such as PostgreSQL (license) and Firebird (license) is that the MySQL documentation is NOT Open Source. The MySQL documentation is and always has been copyright MySQL AB, and “… use of this documentation, in whole or in part, in another publication, requires the prior written consent from an authorized representative of MySQL AB”.

http://jcole.us/blog/archives/2008/07/23/on-mysql-forks-and-mysqls-non-open-source-documentation/

.:():..:():..:():.