Subject Re: [ib-support] Features and Comparisons to PostgreSQL
Author Pavel Cisar

Just few corrections to otherwise very precise Danile's answer...

On 14 Dec 2002 at 8:48, Daniel Rail wrote:

> > 1. Concurrent Transactions

> If this means more than one transaction per connection, then yes.
> But, if this means a transaction within another one, then no. FB 1.5
> will support SAVE POINTS which is part of SQL-99.

IB/FB uses the same multigenerational architecture as PostgreSQL
(actually, IB has it first). You have concurrent transactions in read
committed, repeatable read and serializable isolation levels (no dirty
read) with option to precisely specify the access level to individual
tables (table reservation). Multiple independent transactions per
connection. No nested transactions. Support for savepoints in FB 1.5.

> > 4. Unicode support

> Yes it does. The only place where it's not fully supported and it's
> when creating your WHERE clause, Firebird has a hard time coping with
> the special characters in the search string. Other than that, it
> works.

??? You can specify a character set for literals.

> > 5. Schemas

Namespaces ? No, but it's planned feature.

> > 7. Cancel a query asynchronously

Not in FB, but in IB since v6.5

> > 8. Boolean field
> It's being talked about and a possibility for FB 1.5(I can't say for
> sure)

You can easily substitute it with domains. Direct support for boolean
datatype is in IB 7 and it's in FB 1.5

> > 10. User defined types
> FB has domains. But, if this means that the user could define a
> datatype that is non-existent in FB, i.e. GUID, then no.

No support for user defined operators etc. like in PostgreSQL.

> > 13. Functions for default value of columns
> Not that I'm aware of.

Just literals, but you can use before insert triggers for that purpose.

> > 14. Regular expression support
> Yes. You use the LIKE in your WHERE clause.

Wildcard masks with LIKE operator, but no regular expressions (yet).

> > 16. LIMIT keyword
> FB has the FIRST keyword to limit the number of rows returns.

Yep, FIRST and SKIP, even in subqueries.

> > 18. Indexes on functions
> Yes it's possible. You specify the position of the returned column in
> your ORDER BY.

You probably mean expression indices. No, they are not (yet) supported.

But don't forget FB advantages over PostgreSQL:

- more compact server (1.5MB), smaller footprint
- almost zero configuration and maintenance
- process per client (classic) and thread per client (superserver)
architecture (PG has just classic).
- internal garbage collection thread (no external VACUUM)
- far better Windows port :-)
- embedded server
- far better than PG for scalable vertical solutions (from personal PDA
to SMP servers handling 3000 concurrent users)
- 15+ years of successful world-wide usage in enterprise and mission-
critical solutions
- selectable stored procedures (yep, PG 7.3 got them too)
- much better user's and developer's community :-)

Best regards
Pavel Cisar
For all your upto date Firebird and
InterBase information