Patent ID: 7953749

Claim:
A method comprising the computer-implemented steps of: in a database system, storing in a plurality of data blocks, rows of a database table of a database, each data block of said plurality of data blocks storing a respective set of rows of said database table; assigning logical time values to changes to said rows of said database table based on commit times of transactions that make said changes; storing in said plurality of data blocks, commit time information from which said logical time values may be generated, wherein each data block of said plurality of data blocks contains particular commit time information for the respective set of rows stored in said each data block; receiving queries that request column values from columns in said database table, said queries referencing said columns and said database table by respective names of said columns and said database table; for each query of said queries, computing said each query by retrieving from said plurality of data blocks said column values of said columns; wherein said queries include a query that references a virtual column and a particular column of said columns, wherein said virtual column is treated by the database system as a column containing a value representing a logical time value of a last committed change associated with a row in said database table, wherein a database definition of said database table does not define said virtual column as belonging to said table; and wherein computing said queries includes computing said query, computing said query comprising: retrieving from a particular data block of said plurality of data blocks particular commit time information stored in said particular data block and a column value for said particular column referenced by said query; based on said particular commit time information, generating a first logical time value that represents a commit time associated with a version of a particular row stored in said particular data block; and returning as a result for said query said first logical time value as a virtual column value for said particular row.