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/
--------------[color=blue]
> Immunity to over-deployment[/color]
Ditto for FB.
---------------
---------------[color=blue]
> Better support than the proprietary vendors[/color]
Ditto for FB.
-----------------
----------------------[color=blue]
> Significant saving on staffing costs[/color]
Ditto for FB.
----------------------
----------------------[color=blue]
> Legendary reliability and stability[/color]
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.
-----------------------
-----------------------[color=blue]
> Extensible[/color]
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.
------------------------
-----------------------[color=blue]
> Cross platform[/color]
FB supports approx. 10 major platforms - not quite as many as PG, but
still enough to be getting on with.
-----------------------
------------------------[color=blue]
> 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.[/color]
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.
--------------------------
---------------------------[color=blue]
> GUI database design and administration tools[/color]
Ditto for FB. Some free, some proprietary.
---------------------------
---------------------------[color=blue]
> A point list for some technical features that PostgreSQL offers:[/color]
(an X before any of these means that FB is also compliant, an O means
not, but see caveats)
-----------[color=blue]
> Fully ACID compliant[/color]
X
-----------
-----------[color=blue]
> ANSI SQL compliant[/color]
X
------------
---------------[color=blue]
> Referential Integrity[/color]
X (why this should be seen as a bonus is beyond me!)
---------------
---------------[color=blue]
> Replication (non-commercial and commercial solutions) allowing
> the duplication of the master database to multiple slave machines[/color]
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.
----------------
----------------[color=blue]
> Native interfaces for ODBC, JDBC, C, C++, PHP, Perl, TCL, ECPG,
> Python, and Ruby[/color]
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.
------------------
------------------[color=blue]
> Rules[/color]
? I don't understand these - can somebody explain exactly what they are?
-------------------
-------------------[color=blue]
> Views[/color]
X (FB's are updateable to boot!)
-------------------
-------------------[color=blue]
> Triggers[/color]
X (puhlease!)
--------------------
--------------------[color=blue]
> Unicode[/color]
X
---------------------
---------------------[color=blue]
> Sequences[/color]
X, in FB parlance Generators!
----------------------
-----------------------[color=blue]
> Inheritance[/color]
(NO!!!!!!!!!!)
-----------------------
-----------------------[color=blue]
> Outer Joins[/color]
X (This is a big deal?)
------------------------
------------------------[color=blue]
> Sub-selects[/color]
X (and this?)
------------------------
-----------------------[color=blue]
> An open API[/color]
X
-----------------------
----------------------[color=blue]
> Stored Procedures[/color]
X (another big deal for an RDBMS?)
-----------------------
-----------------------[color=blue]
> Native SSL support[/color]
? (not sure - there is a thing called Zebedee that allows secure
connections over the internet).
-----------------------
-----------------------[color=blue]
> Procedural languages[/color]
X (big deal yet again - though, mind you, not as many as PG.
-----------------------
-----------------------[color=blue]
> Hot stand-by (commercial solutions)[/color]
? (not sure what is meant by this)
-----------------------
-----------------------[color=blue]
> Better than row-level locking[/color]
X (I assume that what is meant here is MVCC?)
------------------------
------------------------[color=blue]
> Functional and Partial indexes[/color]
O
--------------------------
--------------------------[color=blue]
> Native Kerberos authentication[/color]
O
--------------------------
--------------------------[color=blue]
> Support for UNION, UNION ALL and EXCEPT queries[/color]
X
--------------------------
--------------------------[color=blue]
> Loadable extensions offering SHA1, MD5, XML, and other functionality[/color]
O. Caveat, maybe some of this through UDF's?
--------------------------
--------------------------[color=blue]
> Tools for generating portable SQL to share with other SQL-
> compliant systems.[/color]
X FB uses fairly standard SQL syntax. There are a couple of freeware
utilities as well that help one.
---------------------------
---------------------------[color=blue]
> Extensible data type system providing for custom, user-defined
> datatypes and rapid development of new datatypes[/color]
X Caveat. UDT's are a doodle, but cannot AFAIK create row type
variables.
----------------------------
-----------------------------[color=blue]
> Cross-database compatibility functions for easing the transition from
> other, less SQL-compliant RDBMS[/color]
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.
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to
majordomo@postgresql.org)