Subject | Re: What's missing in Firebird (was: Performance against Ingres) |
---|---|
Author | jbouvatt |
Post date | 2005-01-13T16:52:24Z |
> Itother
> would be interesting to hear what people having experience with
> databases miss in Firebird.Things I'm missing in current FB :
1) Ability to write custom contraints (via trigger, CHECKs or any
other means...) that may read data outside the very record/table
being modified, and that would be enforced, just like built-in
declarative constraints, with certainty in all situations regardless
of the running transactions's options. From what I read in past
discussions on the subject, it "would" require those custom
constraints to run inside the "system context". Some spoke about
delayed constraints or "dirty read". I cannot tell myself, I just
badly miss this possibility. Some usage samples :
- Custom RI without needing to forbid deletions on the referenced
table in order to achieve 100% reliability.
- Inter records constraints that cannot be expressed by a unique
constraint.
2) Ability to select the index to be used by an FK.
3) Better UNICODE support.
4) IN (<non-correlated subselect>) evaluated once.
AFAIU, currently "where FIELDA in (Select ID from TBL1)" is
systematically turn by the optimizer into something like "where
(exists(Select 1 from TBL1 where ID = FIELDA))". This means the
subselect is evaluated for each record of the primary select even if
it could be evaluated only once.
I'd like such IN clause to be evaluated once ( iirc Arno once
suggested the result could be stored in memory in a map...).
If one wants to force a systematic evaluation (eg if the subselect
is prone to return a huge resultset), then an explicit EXISTS is
still here to use.
5) Transient data sets
6) incremental backups.
7) tracing/monitoring tools.
8) Better network perf.
9) Regular expressions