Subject | RE: [firebird-support] Rdb$db_key inside triggers |
---|---|
Author | Nigel Weeks |
Post date | 2005-05-23T22:52:19Z |
>At first, this shocked me, but it makes sense.
> OK.
>
> > The delta table is inspected on a regular basis, and
> Delta's are then
> >
>
> A problem with using the db_key - aside from the fact that it
> doesn't seem to do what you need - is that all versions of a
> record share a single db_key value.
The version of the record doesn't matter too much, as I have the delta's
that have changed it.
But, as db_key is misbehaving, a rethink is in order.
> What I think I might look at, in your situation, is usingYep. Plenty of unique identifiers there. Luckily, only a few pages of code
> generator values to tag record versions. Timestamps are too
> coarse a measure - currently whole seconds, soon to be
> clunks (100 microsecond chunks, IIRC). In Firebird you're
> unlikely to hit a duplicate clunk, but when Vulcan introduces
> real parallelism, timestamps won't be unique, however fine
> the measurement. Generators, on the other hand, are pretty
> reliable, and (she says, madly counting on her fingers)
> you're about as likely to run out of a 64 bit generator as
> time in the universe, at least time as measured by early 21st
> century computers.
has been done so far, so any changes will be swift.
But if db_key isn't reliably caught by the trigger, I'll have to build a
system to match the normal primary key on each table, meaning lots more
fields, and slower searching.
Alan's got something to look at over at meta.com.au, but I don't know
pascal, so it's a hard slog figuring out if he uses triggers or not...
Thanks for your fantastic help, Ann!
Nige.