> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Jared Williams
> Sent: 30 June 2008 00:03
> To: 'Gaetano Giunta'; 'Components'
> Subject: Re: [Components] [PersistentObject] Design: 
> Identitymap and relation pre-fetching support
> 
>  
> 
> > Oracle does not have a "rowid" id/timestamp for this 
> (oracle standard 
> > rowid pseudocolumn is actually a row identifier, not row version 
> > identifier, guaranteed to be unique only within the table itself).
> > 
> > In Oracle 11g there is the ORA_ROWSCN that could be used to 
> identify 
> > this
> > (http://download.oracle.com/docs/cd/B28359_01/server.111/b2828
> > 6/pseudocolumns007.htm#BABFAFIC), but if we have to be 
> compatible back 
> > to version 9 (which imho we really should, as oracle 
> installs tend to 
> > upgrade very conservatively), we cannot rely on it.
> > 
> > The simplest thing working for all versions would be to add 
> a "rowid" 
> > column to the table, and a trigger+sequence that updates the value 
> > upon updates, same as we do for autoincrement colums. I would say 
> > using integers guarantees better consistency than timestamps - 
> > timestamps in oracle can go up to 9 digits precision (as in 
> fractions 
> > of a second), with 6 digits being the default. But I also like to 
> > always add a LastModified column to all my tables, just for 
> > traceability...
> > 
> 
> Ah I should've explained was using timetamps on SQL Server.
> 
> MSSQL used the term timestamp for its rowversion datatype, 
> but they were 8 byte values, not the usual/standard timestamp. 
> In 2000 a synonym called rowversion was added, and deprecated 
> the use of the timestamp datatype.

Forgot to add, 

PostgreSQL tables have a hidden column, xmin, which can be used.

Jared 

-- 
Components mailing list
Components@lists.ez.no
http://lists.ez.no/mailman/listinfo/components

Reply via email to