Firebird and PostgreSQL at the DB Corral. - Mailing list pgsql-general

From Paul Ganainm
Subject Firebird and PostgreSQL at the DB Corral.
Date
Msg-id MPG.1a4983a917675eaf9896b3@news.gmane.org
Whole thread Raw
Responses Re: Firebird and PostgreSQL at the DB Corral.  (Richard Welty <rwelty@averillpark.net>)
Re: Firebird and PostgreSQL at the DB Corral.  (Doug McNaught <doug@mcnaught.org>)
Re: Firebird and PostgreSQL at the DB Corral.  (Paul Thomas <paul@tmsl.demon.co.uk>)
Re: Firebird and PostgreSQL at the DB Corral.  (Shridhar Daithankar <shridhar_daithankar@myrealbox.com>)
Re: Firebird and PostgreSQL at the DB Corral.  (Robert Treat <xzilla@users.sourceforge.net>)
Re: Firebird and PostgreSQL at the DB Corral.  (Thomas Kellerer <spam_eater@gmx.net>)
Re: Firebird and PostgreSQL at the DB Corral.  (Mark Kirkwood <markir@paradise.net.nz>)
Re: Firebird and PostgreSQL at the DB Corral.  (Mark Kirkwood <markir@paradise.net.nz>)
List pgsql-general

Hi all,

Following up on another thread, here is a comparison between FB and PG
from an FB'ers POV. BTW, FB is the love-child of Open-Source-Interbase.

BTW, I have tried to be as accurate as I can with the information
available to me at this point in time - I was unable to find anything
resembling a feature list on the FB site, so most of this is from
memory. I do have an email account on the various lists on that site,
and I will post this there and see what they have to say.


This should get the ball rolling on an FB/PG discussion. Hopefully the
primitive formatting that I've applied will work on everybody's machine,
I've just just used '> ' (like newsgroups) and ---------'s to separate
topics. If you are going to reply, it might be better to do it topic by
topic, rather than uselessly copying endless lines of un-replied to
postings? Short, staccato, angry responses are what I want!  8-).


The architectures of the databases are fundamentally the same MVCC for
you, MGA for us Firebirders (Multi Generational Architecture).


From an Open-Source-Interbase/Firebird point of view there are several
issues where PostgreSQL falls down.

Ease of use (particularly on Windows). FB is about as easy as installing
Minesweeper.

</Controversial remark>
PG appears to place a lot of effort in supporting array datatypes.
While they are (barely) supported in FB, most advise against using them
- if I had my way I'd rip them out - they are the work of the Devil. A
well designed schema can get around any need for arrays. They break the
relational model and are generally very non-portable.
<Controversial remark>


I'm not sure exactly where I stand here, but FB has been moved to C++,
whereas AFAIK, PostgreSQL is still in C - this is probably a religious
war (and beyond me), but I just thought that I'd mention it.


From http://advocacy.postgresql.org/advantages/

--------------
> Immunity to over-deployment

Ditto for FB.
---------------

---------------
> Better support than the proprietary vendors

Ditto for FB.
-----------------

----------------------
> Significant saving on staffing costs

Ditto for FB.
----------------------

----------------------
> Legendary reliability and stability

Ditto for FB. Although there are reports of corruption from time to
time, it is generally because the "server" was actually some end-user's
PC.
-----------------------

-----------------------
> Extensible

Ditto for FB. If you want to extend the code, though, you have to give
those changes back to the community - the licence is more GPL than BSD.
------------------------

-----------------------
> Cross platform

FB supports approx. 10 major platforms - not quite as many as PG, but
still enough to be getting on with.
-----------------------

------------------------
> Designed for high volume environments
> We use a multiple row data storage strategy called MVCC to make
> PostgreSQL extremely responsive in high volume environments.
> The leading proprietary database vendor uses this technology
> as well, for the same reasons.

Ditto for FB. It uses what is termed variously as MGA (Multi-
Generational Architecture - I think that they have you guys beat for the
terminology!), Record Shadowing or Record Versioning. It seems to be
identical to what PG uses, with a different implementation obviously.
--------------------------

---------------------------
> GUI database design and administration tools

Ditto for FB. Some free, some proprietary.
---------------------------

---------------------------
> A point list for some technical features that PostgreSQL offers:

(an X before any of these means that FB is also compliant, an O means
not, but see caveats)

-----------
> Fully ACID compliant

X
-----------
-----------
> ANSI SQL compliant

X
------------
---------------
> Referential Integrity

X (why this should be seen as a bonus  is beyond me!)
---------------
---------------
> Replication (non-commercial and commercial solutions) allowing
> the     duplication of the master database to multiple slave machines

X caveat: no OS solution at the moment, but there is a form of shadowing
that one can do - not great but better than nothing.
----------------

----------------
> Native interfaces for ODBC, JDBC, C, C++, PHP, Perl, TCL, ECPG,
> Python, and Ruby

X caveat: I think that FB works natively with the vast majority of these
and has its own interfaces as well, but not ECPG obviously.
------------------

------------------
> Rules

? I don't understand these - can somebody explain exactly what they are?
-------------------

-------------------
> Views

X (FB's are updateable to boot!)
-------------------

-------------------
> Triggers

X (puhlease!)
--------------------

--------------------
> Unicode

X
---------------------

---------------------
> Sequences

X, in FB parlance Generators!
----------------------

-----------------------
> Inheritance

(NO!!!!!!!!!!)
-----------------------

-----------------------
> Outer Joins

X (This is a big deal?)
------------------------

------------------------
> Sub-selects

X (and this?)
------------------------

-----------------------
> An open API

X
-----------------------

----------------------
> Stored Procedures

X (another big deal for an RDBMS?)
-----------------------

-----------------------
> Native SSL support

? (not sure - there is a thing called Zebedee that allows secure
connections over the    internet).
-----------------------

-----------------------
> Procedural languages

X (big deal yet again - though, mind you, not as many as PG.
-----------------------

-----------------------
> Hot stand-by (commercial solutions)

? (not sure what is meant by this)
-----------------------

-----------------------
> Better than row-level locking

X (I assume that what is meant here is MVCC?)
------------------------

------------------------
> Functional and Partial indexes

O
--------------------------

--------------------------
> Native Kerberos authentication

O
--------------------------

--------------------------
> Support for UNION, UNION ALL and EXCEPT queries

X
--------------------------

--------------------------
> Loadable extensions offering SHA1, MD5, XML, and other functionality

O. Caveat, maybe some of this through UDF's?
--------------------------

--------------------------
> Tools for generating portable SQL to share with other SQL-
> compliant systems.

X FB uses fairly standard SQL syntax. There are a couple of freeware
utilities as well that help one.
---------------------------

---------------------------
> Extensible data type system providing for custom, user-defined
> datatypes and rapid development of new datatypes

X Caveat. UDT's are a doodle, but cannot AFAIK create row type
variables.
----------------------------

-----------------------------
> Cross-database compatibility functions for easing the transition from
> other, less SQL-compliant RDBMS

O, but many should/would be easy to write using UDF's.
-----------------------------


Paul...

--

plinehan  x__AT__x  yahoo  x__DOT__x  com

C++ Builder 5 SP1, Interbase 6.0.1.6 IBX 5.04 W2K Pro

Please do not top-post.

pgsql-general by date:

Previous
From: Jeff Rogers
Date:
Subject: functions returning sets
Next
From: cadancer
Date:
Subject: Perl "with-perl" configuration option